Tenho a seguinte dúvida e queria compartilhar com vcs. Eu tenho que fazer uma lista de listas. Por exemplo: Tenho que fazer uma estrutura para representar um grafo:
listaGrafo (origem, destino, arco, custo)
Onde cada arco só poderá ter uma origem e um destino e um custo. Qual seria a melhor forma de fazer essa estrutura.
Estou com dificuldade em criar essa estrutura e adicionar os itens às listas.
publicclassGrafo{privateStringorigem;privateStringdestino;privateStringarco;privateDoublecusto;publicGrafo(Stringorigem,Stringdestino,Stringarco,Doublecusto){this.origem=origem;this.destino=destino;this.arco=arco;this.custo=custo;}//Getters and setters...}publicclassListaGrafos{privateArrayListlistaGrafos=newArrayList();publicvoidadicionarGrafo(Stringorigem,Stringdestino,Stringarco,Doublecusto)listaGrafos.add(newGrafo(origem,destino,arco,custo))}publicArrayListgetListaArcos(){returnlistaArcos;}
Jorgev
Olha aquilante, eu nunca mexi com grafos, apenas li um pouco sobre, mas fiquei curioso com a sua dúvida. Deixa eu ver se entendi a sua dúvida: Vc quer criar uma estrutura de lista e nessa lista vc vai colcar outra estrutura como essa que vc passou ai é isso?
Abraço.
Jorgev
yorgan:
Pode ser algo assim:
publicclassGrafo{privateStringorigem;privateStringdestino;privateStringarco;privateDoublecusto;publicGrafo(Stringorigem,Stringdestino,Stringarco,Doublecusto){this.origem=origem;this.destino=destino;this.arco=arco;this.custo=custo;}//Getters and setters...}publicclassListaGrafos{privateArrayListlistaGrafos=newArrayList();publicvoidadicionarGrafo(Stringorigem,Stringdestino,Stringarco,Doublecusto)listaGrafos.add(newGrafo(origem,destino,arco,custo))}publicArrayListgetListaArcos(){returnlistaArcos;}
Eu já fiz uma estrutura igual a essa, não era com dados de um grafo, mas funcionou blz.
Abraço.
luistiagos
A diversas maneiras de vc fazer isto… mas vou te dar um exemplo de uma não sei se é a melhor forma de se fazer mas e uma das formas…
vc podera fazer uma classe No que representa o nó do grafo nela tera um atributo id para mostrar a identificação do nó, podera ter algum outro atributo como conteudo (uma string por exemplo) isto seria o que este nó iria carregar é opcional e tera uma lista de objetos arcos pois um no podera estar ligado a diversos arcos… depois é claro seria bom ter uma classe arco que teria 3 atributos: o nó de origem, o nó de destino e o peso. ao criar um novo nó o que vc iria fazer seria simples instanciar um novo nó com seu id e seu valor, para fazer a ligação deste com um outro nó existente vc iria instanciar um novo arco com seu peso e passar o objeto do nó recem criado como origem e colocar o objeto do no de destino como destino. Esta eu creio que seria a estrutura mais simples para se fazer um grafo.