Package estrutura

Source Code of estrutura.Grafo

package estrutura;

import java.util.ArrayList;

import leitura.Leitura;

public class Grafo {
  //Atributo da classe Grafo
  private ArrayList<No> nos = null; //Lista de n�s do grafo.
  private Leitura l = null;
 
  //Contrutor padr�o da classe Grafo
  public Grafo(){
    nos = new ArrayList<No>();
    l = new Leitura();
    l.reading();
   
  }

  //Sets e gets dos atributos da classe Grafo.
  public ArrayList<No> getNos() {
    return nos;
  }

  public void setNos(ArrayList<No> nos) {
    this.nos = nos;
  }
 
 
  /**
   * Fun��o que retorna um n� do grafo com base no seu valor de descri��o.
   *
   * @param  valor
   * @return No
   */
 
  public No buscaNo(int valor){
    for(int i = 0; i < this.nos.size(); i++){
      if(nos.get(i).getValor() == valor){
        return nos.get(i);
      }
    }
    return null;
  }
 
  /*
   * Fun��o que cria e adiciona os n�s do grafo.
   */
  public void criarNos(){
    ArrayList<Integer> nosArquivo = this.l.no(); //Retorno dos n�s definidos no arquivo.
    //Instancia o n� e adiciona no grafo.
    for(int i = 0; i < nosArquivo.size(); i++){
      No novo  = new No();
      novo.setValor(nosArquivo.get(i));
      this.nos.add(novo);
    }
  }
 
  /*
   * Fun��o que cria as aresta do grafo.
   */
  public void criaArestas(){
    ArrayList<Integer> arestasArquivo = this.l.aresta(); //Retorno das arestas definidas no arquivo.
    ArrayList<Integer> pesosArquivo = this.l.custo(); //Retorno dos pesos definidos no arquivo.
    No aux1 = null;
    No aux2 = null;
    //Adiciona aos n�s os valores de seus respectivos vizinho.
    for(int i = 0; i < arestasArquivo.size(); i = i+2){
      Aresta nova1 = new Aresta();
      Aresta nova2 = new Aresta();
     
      nova1.setValor(arestasArquivo.get(i+1));
      nova1.setPeso(pesosArquivo.get(i/2));   
     
      nova2.setPeso(arestasArquivo.get(i/2));
      nova2.setValor(arestasArquivo.get(i));
     
      aux1 = this.buscaNo(arestasArquivo.get(i));
      aux1.getVizinhos().add(nova1);
     
      aux2 = this.buscaNo(arestasArquivo.get(i+1));
      nova2.setPeso(pesosArquivo.get(i/2))
      aux2.getVizinhos().add(nova2);
    }
  }
}
TOP

Related Classes of estrutura.Grafo

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.