public bool EquivaleA(Arvore <Dado> outraArvore) { /* . ambas são vazias * ou * .. Info(A) = Info(B) e * ... Esq(A) eq Esq(B) e Dir(A) eq Dir(B) */ return(Eq(this.Raiz, outraArvore.Raiz)); }
public FrmRotasMarte() { InitializeComponent(); cidades = new Arvore <Cidade>(); caminhos = new List <Caminho>(); pontosAUnir = new List <Point>(); fonteCidades = lblCidades.Font; }
public Object Clone() { Arvore <Dado> ret = null; try { ret = new Arvore <Dado>(this); } catch (Exception e) { } return(ret); }
public Matriz(Arvore <Cidade> cidades, List <Caminho> caminhosPossiveis) { matrizDeAdjacencias = new int[cidades.QuantosDados, cidades.QuantosDados]; this.cidades = new List <Cidade>(); InserirCidade(cidades.Raiz); foreach (Caminho c in caminhosPossiveis) { matrizDeAdjacencias[c.IdCidadeOrigem, c.IdCidadeDestino] = c.Distancia; } }
/** * Construtor, cada atributo é instanciado ou tem seus dados carregados. */ public GPS() { arvore = new Arvore <Cidade>(); listaCidades = new List <Cidade>(); listaMovimentos = new List <Movimento>(); arvore = Leitor.LerCidades(); listaCidades = arvore.getListaOrdenada(); listaMovimentos = Leitor.LerMovimentos(); matrizAdjacencia = MontarMatrizAdjacencia(); }
//ao iniciar o programa private void Form1_Load(object sender, EventArgs e) { //limpamos os itens existentes nos lsbs lsbOrigem.Items.Clear(); lsbDestino.Items.Clear(); //instanciamos variáveis caminho = new PilhaLista <int>(); cidades = new Arvore <Cidade>(); //leitura do arquivo de cidades de acordo com o método feito na classe Cidade //incluimos as cidades na árvore de cidades StreamReader arq = new StreamReader("CidadesMarte.txt"); while (!arq.EndOfStream) { Cidade cid = Cidade.LerArquivo(arq); cidades.Incluir(cid); } arq.Close(); //lemos o arquivo ordenado para inclusão das cidades nos lsbs de origem e destino arq = new StreamReader("CidadesMarteOrdenado.txt"); while (!arq.EndOfStream) { Cidade cid = Cidade.LerArquivo(arq); lsbOrigem.Items.Add(cid.IdCidade + "-" + cid.NomeCidade); lsbDestino.Items.Add(cid.IdCidade + "-" + cid.NomeCidade); } arq.Close(); //criamos uma matriz de cidades de acordo com a quantidade de cidades existentes adjacencias = new int[cidades.QuantosDados, cidades.QuantosDados]; //lemos o arquivo que nos passa os caminhos entre as cidades arq = new StreamReader("CaminhosEntreCidadesMarte.txt"); //cria-se uma variável que recebe o caminho entre as cidades //guarda-se a distância do caminho na matriz de acordo com a cidade de origem e cidade de destino //[idOrigem, idDestino] == [x,y] while (!arq.EndOfStream) { CaminhoEntreCidades caminho = CaminhoEntreCidades.LerArquivo(arq); adjacencias[caminho.IdCidadeOrigem, caminho.IdCidadeDestino] = caminho.Distancia; } arq.Close(); //pedimos para que o mapa seja redesenhado pbMapa.Invalidate(); }
/** * Método responsável por ler o arquivo "CidadesMarte.txt" e armazenar seus dados numa Arvore de cidades, que será retornada. */ public static Arvore <Cidade> LerCidades() { StreamReader leitorDeArquivos = new StreamReader("CidadesMarte.txt", Encoding.GetEncoding("iso-8859-1")); Arvore <Cidade> arvore = new Arvore <Cidade>(); while (!leitorDeArquivos.EndOfStream) { String linhaLinha = leitorDeArquivos.ReadLine(); int idCidade = int.Parse(linhaLinha.Substring(0, 3).Trim()); String nomeCidade = linhaLinha.Substring(3, 16).Trim(); int coordenadaX = int.Parse(linhaLinha.Substring(19, 5).Trim()); int coordenadaY = int.Parse(linhaLinha.Substring(24, 4).Trim()); Cidade novaCidade = new Cidade(idCidade, nomeCidade, coordenadaX, coordenadaY); arvore.Raiz = arvore.InserirBalanceado(novaCidade, arvore.Raiz); } return(arvore); }
double?[] melhorCaminho; // Variável que guarda a linha seleciona pelo usuário para que o caminho escolhido seja exibido no mapa public Form1() { InitializeComponent(); arvore = new Arvore <Cidade>(); //Instanciação da árvore }
public Arvore(Arvore <Dado> modelo) { this.Raiz = modelo.Raiz; this.Atual = modelo.Atual; this.Antecessor = modelo.Antecessor; }
private void Form1_Load(object sender, EventArgs e) { arvoreCidades = new Arvore <CidadeMarte>(); matrizCaminhos = new int[23, 23]; dgvCaminhosEncontrados.RowCount = 0; //arquivo cidades try { // vai ler o arquivo e armazenar em uma árvore StreamReader arquivo; arquivo = new StreamReader(@"C:\Temp\CidadesMarte.txt", Encoding.Default); while (!arquivo.EndOfStream) { string linha = arquivo.ReadLine(); arvoreCidades.Incluir(new CidadeMarte(int.Parse(linha.Substring(1, 2)), // id linha.Substring(3, 16), // nome int.Parse(linha.Substring(19, 4)), // coordx int.Parse(linha.Substring(24, 4)))); // coordy } } catch { //caso não consiga achar o arquivo ele da um openfile StreamReader arquivo; MessageBox.Show("Selecione o arquivo das cidades (CidadesMarte.txt)"); if (dlgAbrir.ShowDialog() == DialogResult.OK) { arquivo = new StreamReader(dlgAbrir.FileName); } else { arquivo = new StreamReader(@"C:\Temp\CidadesMarte.txt", Encoding.Default); } while (!arquivo.EndOfStream) { string linha = arquivo.ReadLine(); arvoreCidades.Incluir(new CidadeMarte(int.Parse(linha.Substring(1, 2)), // id linha.Substring(3, 16), // nome int.Parse(linha.Substring(19, 4)), // coordx int.Parse(linha.Substring(24, 4)))); // coordy } } // arquivo caminhos try { StreamReader arquivo; arquivo = new StreamReader(@"C:\Temp\CaminhosEntreCidadesMarte.txt", Encoding.Default); while (!arquivo.EndOfStream) { string linha = arquivo.ReadLine(); matrizCaminhos[int.Parse(linha.Substring(1, 2)), int.Parse(linha.Substring(4, 2))] = int.Parse(linha.Substring(7, 4)); // id origem // id destino // distancia } } catch { StreamReader arquivo; MessageBox.Show("Selecione o arquivo dos caminhos (CaminhosEntreCidadesMarte.txt)"); if (dlgAbrir.ShowDialog() == DialogResult.OK) { arquivo = new StreamReader(dlgAbrir.FileName); } else { arquivo = new StreamReader(@"C:\Temp\CaminhosEntreCidadesMarte.txt", Encoding.Default); } while (!arquivo.EndOfStream) { string linha = arquivo.ReadLine(); matrizCaminhos[int.Parse(linha.Substring(1, 2)), int.Parse(linha.Substring(4, 2))] = int.Parse(linha.Substring(7, 4)); // id origem // id destino // distancia } } pnlArvore.Invalidate(); }