/* * Retorna a lista de arestas do grafo */ public override List <Edge <T> > Edges() { List <Edge <T> > edges = new List <Edge <T> >(); int lenNodo = adjList.Values.Count; //Para cada lista de adjacencia for (int i = 0; i < lenNodo; i++) { List <Edge <T> > arestas = adjList.Values.ToList()[i]; int lenAresta = arestas.Count; //Para cada aresta for (int j = 0; j < lenAresta; j++) { //Adicionamos a aresta a lista edges.Add(arestas[j]); } } //Ordenamos a lista apartir dos pesos da aresta EdgeComparer <T> comparer = new Model.EdgeComparer <T>(); edges.Sort(comparer); return(edges); }
/* * Retorna a lista de arestas do grafo */ public override List <Edge <T> > Edges() { List <Edge <T> > edges = new List <Edge <T> >(); //Para cada linha de adjacencia foreach (Dictionary <Vertex <T>, Edge <T> > adjacencyRow in adjMatrix.Values) { //Para casa aresta do vertice foreach (Edge <T> edge in adjacencyRow.Values) { //Se a aresta não for nula if (edge != null) { //Adicionamos a aresta a lista edges.Add(edge); } } } //Ordenamos a lista apartir dos pesos da aresta EdgeComparer <T> comparer = new Model.EdgeComparer <T>(); edges.Sort(comparer); return(edges); }