public void AdicionaAresta(Vertice v2, int peso) { Aresta a = new Aresta(this, v2, peso); Arestas.Add(a); //Adjacentes.Add(v2); }
public void PintarArestasDeIdaEVolta() { var arestasDaOrigem = Arestas.Where(a => a.Antecessor.Identificador == "Sede").ToList(); var corLaranja = Cores.First(c => c.Nome == "Laranja"); foreach (var aresta in arestasDaOrigem) { aresta.Cor = corLaranja.Hexadecimal; var arestaNova = new Aresta() { Codigo = Arestas.Last().Codigo + 1, Custo = aresta.Custo, Antecessor = aresta.Sucessor, Sucessor = aresta.Antecessor, Cor = corLaranja.Hexadecimal }; Arestas.Add(arestaNova); } }
public void AdicionaAresta(int Origem, int Destino, int Peso, int id = -1) { AdicionaVertice(Origem); AdicionaVertice(Destino); Aresta aresta = ObtenhaAresta(Origem, Destino); if (aresta is object) { EditarAresta(Origem, Destino, Peso); } else { Arestas.Add(new Aresta() { Origem = Origem, Destino = Destino, Peso = Peso, Id = id }); } AdicionaVerticeAdjacente(Origem, Destino); }
/// <summary> /// Adds Aresta into Grafo /// </summary> /// <param name="a"></param> /// <returns></returns> public bool AddAresta(Aresta a) { if (a.isDirected == isDigraph) { if (!Vertices.Contains(a.vertice1)) { Vertices.Add(a.vertice1); } if (!Vertices.Contains(a.vertice2)) { Vertices.Add(a.vertice2); } Arestas.Add(a); if (a.vertice1._id == a.vertice2._id) { isAciclic = false; // no longer aciclic } } return(false); }
public void AdicionarAresta() { MensagemDeErro = string.Empty; if (Arestas.Any(a => (a.Antecessor.Identificador == Antecessor && a.Sucessor.Identificador == Sucessor) || (a.Sucessor.Identificador == Antecessor && a.Antecessor.Identificador == Sucessor))) { MensagemDeErro = "Os vertices selecionados já estão ligados entre si."; return; } else if (Antecessor == Sucessor) { MensagemDeErro = "Não é possível fazer essa ligação."; return; } Aresta.Antecessor = Vertices.First(v => v.Identificador == Antecessor); Aresta.Sucessor = Vertices.First(v => v.Identificador == Sucessor); Aresta.Codigo = Arestas.Any() ? Arestas.Last().Codigo++ : 0; Arestas.Add(Aresta); Aresta = new Aresta(); }
public void GerarGrafoParaProblemaDoCaixeiroViajante() { var origem = new Vertice() { Codigo = 0, Identificador = "Sede" }; var clienteA = new Vertice() { Codigo = 1, Identificador = "Cliente A" }; var clienteB = new Vertice() { Codigo = 2, Identificador = "Cliente B" }; var clienteC = new Vertice() { Codigo = 3, Identificador = "Cliente C" }; var clienteD = new Vertice() { Codigo = 4, Identificador = "Cliente D" }; var clienteE = new Vertice() { Codigo = 5, Identificador = "Cliente E" }; Vertices.Add(origem); Vertices.Add(clienteA); Vertices.Add(clienteB); Vertices.Add(clienteC); Vertices.Add(clienteD); Vertices.Add(clienteE); var aresta0 = new Aresta() { Codigo = 0, Custo = 10, Antecessor = clienteA, Sucessor = clienteB }; var aresta1 = new Aresta() { Codigo = 1, Custo = 7, Antecessor = clienteB, Sucessor = clienteC }; var aresta2 = new Aresta() { Codigo = 2, Custo = 8, Antecessor = clienteC, Sucessor = clienteD }; var aresta3 = new Aresta() { Codigo = 3, Custo = 10, Antecessor = clienteD, Sucessor = clienteE }; var aresta4 = new Aresta() { Codigo = 4, Custo = 10, Antecessor = clienteE, Sucessor = clienteA }; var aresta5 = new Aresta() { Codigo = 5, Custo = 18, Antecessor = clienteA, Sucessor = clienteD }; var aresta6 = new Aresta() { Codigo = 6, Custo = 12, Antecessor = clienteA, Sucessor = clienteC }; var aresta7 = new Aresta() { Codigo = 7, Custo = 12, Antecessor = clienteB, Sucessor = clienteE }; var aresta8 = new Aresta() { Codigo = 8, Custo = 12, Antecessor = clienteB, Sucessor = clienteD }; var aresta9 = new Aresta() { Codigo = 9, Custo = 12, Antecessor = clienteC, Sucessor = clienteE }; var aresta10 = new Aresta() { Codigo = 10, Custo = 10, Antecessor = origem, Sucessor = clienteA }; var aresta11 = new Aresta() { Codigo = 11, Custo = 5, Antecessor = origem, Sucessor = clienteB }; var aresta12 = new Aresta() { Codigo = 12, Custo = 5, Antecessor = origem, Sucessor = clienteC }; var aresta13 = new Aresta() { Codigo = 13, Custo = 10, Antecessor = origem, Sucessor = clienteD }; var aresta14 = new Aresta() { Codigo = 14, Custo = 10, Antecessor = origem, Sucessor = clienteE }; Arestas.Add(aresta0); Arestas.Add(aresta1); Arestas.Add(aresta2); Arestas.Add(aresta3); Arestas.Add(aresta4); Arestas.Add(aresta5); Arestas.Add(aresta6); Arestas.Add(aresta7); Arestas.Add(aresta8); Arestas.Add(aresta9); Arestas.Add(aresta10); Arestas.Add(aresta11); Arestas.Add(aresta12); Arestas.Add(aresta13); Arestas.Add(aresta14); }
public void GerarGrafoParaBuscas(bool ehOrientado) { var vertice0 = new Vertice() { Codigo = 0, Identificador = "0" }; var vertice1 = new Vertice() { Codigo = 1, Identificador = "1" }; var vertice2 = new Vertice() { Codigo = 2, Identificador = "2" }; var vertice3 = new Vertice() { Codigo = 3, Identificador = "3" }; var vertice4 = new Vertice() { Codigo = 4, Identificador = "4" }; var vertice5 = new Vertice() { Codigo = 5, Identificador = "5" }; var vertice6 = new Vertice() { Codigo = 6, Identificador = "6" }; Vertices.Add(vertice0); Vertices.Add(vertice1); Vertices.Add(vertice2); Vertices.Add(vertice3); Vertices.Add(vertice4); Vertices.Add(vertice5); Vertices.Add(vertice6); var aresta1 = new Aresta() { Codigo = 0, Identificador = "a", Antecessor = vertice1, Sucessor = vertice2, Custo = 2, EhOrientado = ehOrientado }; var aresta2 = new Aresta() { Codigo = 1, Identificador = "b", Antecessor = vertice1, Sucessor = vertice6, Custo = 6, EhOrientado = ehOrientado }; var aresta3 = new Aresta() { Codigo = 2, Identificador = "c", Antecessor = vertice6, Sucessor = vertice4, Custo = 3, EhOrientado = ehOrientado }; var aresta4 = new Aresta() { Codigo = 3, Identificador = "d", Antecessor = vertice4, Sucessor = vertice5, Custo = 7, EhOrientado = ehOrientado }; var aresta5 = new Aresta() { Codigo = 4, Identificador = "e", Antecessor = vertice5, Sucessor = vertice0, Custo = 1, EhOrientado = ehOrientado }; var aresta6 = new Aresta() { Codigo = 5, Identificador = "f", Antecessor = vertice0, Sucessor = vertice1, Custo = 5, EhOrientado = ehOrientado }; var aresta7 = new Aresta() { Codigo = 6, Identificador = "g", Antecessor = vertice6, Sucessor = vertice3, Custo = 3, EhOrientado = ehOrientado }; Arestas.Add(aresta1); Arestas.Add(aresta2); Arestas.Add(aresta3); Arestas.Add(aresta4); Arestas.Add(aresta5); Arestas.Add(aresta6); Arestas.Add(aresta7); }
public void GerarGrafoParaPrim() { var verticeA = new Vertice() { Codigo = 0, Identificador = "A" }; var verticeB = new Vertice() { Codigo = 1, Identificador = "B" }; var verticeC = new Vertice() { Codigo = 2, Identificador = "C" }; var verticeD = new Vertice() { Codigo = 3, Identificador = "D" }; var verticeE = new Vertice() { Codigo = 4, Identificador = "E" }; Vertices.Add(verticeA); Vertices.Add(verticeB); Vertices.Add(verticeC); Vertices.Add(verticeD); Vertices.Add(verticeE); var aresta1 = new Aresta() { Codigo = 0, Identificador = "ab", Antecessor = verticeA, Sucessor = verticeB, Custo = 9, EhOrientado = false }; var aresta2 = new Aresta() { Codigo = 1, Identificador = "be", Antecessor = verticeB, Sucessor = verticeE, Custo = 5, EhOrientado = false }; var aresta3 = new Aresta() { Codigo = 2, Identificador = "ec", Antecessor = verticeE, Sucessor = verticeC, Custo = 5, EhOrientado = false }; var aresta4 = new Aresta() { Codigo = 3, Identificador = "ca", Antecessor = verticeC, Sucessor = verticeA, Custo = 5, EhOrientado = false }; var aresta5 = new Aresta() { Codigo = 4, Identificador = "ad", Antecessor = verticeA, Sucessor = verticeD, Custo = 2, EhOrientado = false }; var aresta6 = new Aresta() { Codigo = 5, Identificador = "db", Antecessor = verticeD, Sucessor = verticeB, Custo = 6, EhOrientado = false }; var aresta7 = new Aresta() { Codigo = 6, Identificador = "de", Antecessor = verticeD, Sucessor = verticeE, Custo = 3, EhOrientado = false }; var aresta8 = new Aresta() { Codigo = 7, Identificador = "dc", Antecessor = verticeD, Sucessor = verticeC, Custo = 4, EhOrientado = false }; Arestas.Add(aresta1); Arestas.Add(aresta2); Arestas.Add(aresta3); Arestas.Add(aresta4); Arestas.Add(aresta5); Arestas.Add(aresta6); Arestas.Add(aresta7); Arestas.Add(aresta8); }
public void AddAresta(Aresta aresta) { Arestas.Add(aresta); }