Nombre:
Omar S. Guzmán
Matrícula:
2022-0866
Asignatura:
Estructura de datos
Tema:
Los grafos
Docente:
Eduandy Isabel Cruz
Fecha:
08/07/2024
Institución:
Instituto Tecnológico de las Américas (ITLA)
Crea un programa en C# que modele conexiones entre amigos en una red social utilizando una
matriz de adyacencia. Implementa funciones para encontrar amigos en común entre dos
personas.
C#:
using System;
using System.Collections.Generic;
class SocialNetwork
{
private int[,] adjacencyMatrix;
private int numberOfPeople;
public SocialNetwork(int numberOfPeople)
{
this.numberOfPeople = numberOfPeople;
adjacencyMatrix = new int[numberOfPeople, numberOfPeople];
}
// Añadir conexión entre dos personas
public void AddFriendship(int personA, int personB)
{
if (personA >= 0 && personA < numberOfPeople && personB >= 0 && personB <
numberOfPeople)
{
adjacencyMatrix[personA, personB] = 1;
adjacencyMatrix[personB, personA] = 1;
}
}
// Encontrar amigos en común entre dos personas
public List<int> FindCommonFriends(int personA, int personB)
{
List<int> commonFriends = new List<int>();
if (personA >= 0 && personA < numberOfPeople && personB >= 0 && personB <
numberOfPeople)
{
for (int i = 0; i < numberOfPeople; i++)
{
if (adjacencyMatrix[personA, i] == 1 && adjacencyMatrix[personB, i]
== 1)
{
commonFriends.Add(i);
}
}
}
return commonFriends;
}
public static void Main(string[] args)
{
SocialNetwork network = new SocialNetwork(5);
// Añadir algunas conexiones de amistad
network.AddFriendship(0, 1);
network.AddFriendship(0, 2);
network.AddFriendship(1, 2);
network.AddFriendship(1, 3);
network.AddFriendship(2, 4);
// Encontrar amigos en común entre dos personas
List<int> commonFriends = network.FindCommonFriends(0, 1);
Console.WriteLine("Amigos en común entre la persona 0 y la persona 1:");
foreach (int friend in commonFriends)
{
Console.WriteLine(friend);
}
}
}