Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

darkangel_13

Listas duplamente ligadas

Recommended Posts

darkangel_13

Boa tarde estou a tentar criar um DLL e não consigo pois não estou a perceber como é que tudo está a ser armazenado e como é que eu vou tratar do que armazenei.

tenho por exemplo:

1 2 8 9 8 7 7 8 6 7 8 9 8 7 6 5

8 7 6 5 4 3 7 8 9 5 7 8 6 5 3 5

E já criei

DDList newDDList = new DDList();

só que estou a perceber agora como é que eu vou manipular de forma separada as duas filas de numeros que tem exactamente um mesmo tamanho.

Alguem pode dar uma ajudinha?

Share this post


Link to post
Share on other sites
HappyHippyHippo

tem cuidado com os termos/nomes que dás às coisas !!! dll existe é não tem nada haver com double linked lists

de resto, é impossível te responder a uma pergunta/questão colocada nesses termos, afinal qual é a dúvida ?


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
darkangel_13

Obrigado pela resposta, a duvida é perceber como é feita a organização dentro da lista , como é que estão as duas filas de numeros organizadas. Como é que por exemplo consigo dentro da lista substituir o primeiro numero de cada fila de numeros que meti lá dentro

Share this post


Link to post
Share on other sites
HappyHippyHippo

esta é a representação gráfica de um elemento da lista

       +---+
       |   | -next->
       | X |
<-prev- |   |
       +---+

uma lista com dois elemento será

       +---+         +---+
       |   | -next-> |   | -next->
       | X |         | Y |
<-prev- |   | <-prev- |   |
       +---+         +---+

dica : pensa sempre em fazer uma lista, duas listas são duas instâncias de uma objecto e não um objecto que gere duas listas


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
darkangel_13

Obrigado pela resposta ..

Então isto surge-me uma duvida .. neste pedaço de codigo como é que isto é possivel ?

//leitura das filas de numeros
String line = bReader.readLine();
 String[] list1 = line.split(" ");
 line = bReader.readLine();
 String[] list2 = line.split(" ");


DDList lista = new DDList(); //sendo este DDList de uma classe cliente

 for(int i=0; i<list1.length;i++){
  lista.addEnd(Integer.parseInt(list1), Integer.parseInt(list2));
 }

Edited by brunoais
geshi

Share this post


Link to post
Share on other sites
HappyHippyHippo

faz assim : primeiro implementa uma lista ligada, não penses na segunda lista.

depois crias uma segunda classe que implementa a tua lista dupla:

class DoubleLinkedList
{
 // implementação da lista duplamente ligada
}

class DoubleList
{
 private DoubleLinkedList l1;
 private DoubleLinkedList l2;

 public DoubleList()
 {
   l1 = new DoubleLinkedList();
   l2 = new DoubleLinkedList();
 }

 public void addEnd(int d1, int d2)
 {
   l1.addEnd(d1);
   l2.addEnd(d2);
 }

 // etc ...
}


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
darkangel_13

Hum , mas o problema é que eu já tenho uma classe Main criada , ela é que me vai criar a lista. E cria da forma que meti em acima


Já tenho algo mas isto está-me a dar muitos erros...


Alguém me pode dar uma ajuda ?

Edited by brunoais
3x post junto

Share this post


Link to post
Share on other sites
CloudPT

Olha tens de utilizar uma class node dentro da class DDList em que tens crias as variaveis Node next, Node prev, int element. E na class principal declaras as variaveis private Node head1 e o private Node head2 e igual para o tail private Node tail1, private Node tail2 e o size para saberes o comp da lista. Para percorreres a lista ex head1.next. Vais percorrer um a um. Boa sorte com LABP :thumbsup:

Edited by CloudPT

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.