Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

darkangel_13

Listas duplamente ligadas

Mensagens Recomendadas

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?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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));
 }

Editado por brunoais
geshi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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 ?

Editado por brunoais
3x post junto

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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:

Editado por CloudPT

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.