Jump to content

Listas duplamente ligadas


Recommended Posts

Posted

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?

Posted

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

Posted

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
Posted (edited)

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
Posted

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
Posted (edited)

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
Posted (edited)

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 👍

Edited by CloudPT

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
×
×
  • Create New...

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.