Buscar

Lista 9 Estrutura de Dados

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

Lista 9 – Listas Duplamente Encadeadas 
 
 
 Para os exercícios a seguir, considere : 
 
 struct nodupla { 
 int dado; 
 struct nodupla *dlink; // link p/ o nó à direita 
 struct nodupla *elink; // link p/ o nó à esquerda 
 }; 
 
 
 
1) Faça um programa (aplicação) em C++ para ler a quantidade n de nós de uma lista 
duplamente encadeada de reais, sendo n ≥ 0. A lista deverá ser construída com n 
nós, através de sucessivas inserções no início. Após sua criação, a lista deverá 
ser impressa, se possível. Emita mensagem de erro em caso de lista vazia. 
 Defina o tipo nodupla para reais. 
 
Nesta questão, implemente 2 funções (operações) : 
 
a) nodupla *insereFrente(nodupla *p, int valor); 
 
p aponta para o primeiro nó da lista e valor é o elemento a ser 
inserido no início da lista. 
 
b) void imprime(nodupla *p); 
 
 onde p aponta para o 1º. nó da lista (i.e., nó mais à esquerda na lista). 
 
A lista deverá ser impressa da esquerda para a direita. 
 
 
2) Faça um programa (aplicação) em C++ para construir uma lista duplamente 
encadeada (não circular) de inteiros positivos, através de sucessivas inserções no 
fim da lista. Após sua criação, a lista deverá ser impressa e ter sua quantidade de 
nós também impressa. Emita mensagem de erro em caso de lista vazia. 
Nesta questão, implemente 3 funções (operações) : 
 
a) nodupla *insereFim(nodupla *p, int valor); 
 
p aponta para o primeiro nó da lista e valor é o elemento a ser 
inserido no início da lista. 
 
b) void imprime(nodupla *p); 
c) int contaNos(nodupla *p);