Índice >
Lista >
Dinâmica >
Exercícios
Instituto de Ciências Matemáticas de São Carlos
Departamento de
Computação e Estatística
SCE182 - Algoritmos e Estruturas de Dados 1
Profs. Resp.: Graça Pimentel e Maria Cristina
Exercícios
1) Dada uma lista ordenada L1 encadeada alocada dinamicamente
(i.e., implementada utilizando pointer), escreva procedimentos Pascal que:
- verifique se L1 está ordenada ou não (a ordem pode ser crescente ou
decrescente)
- faça uma cópia da lista L1 em uma outra lista L2;
- faça uma cópia da Lista L1 em L2, eliminando elementos repetidos,
considerando L1, L2, L3 ordenadas;
- inverta L1 colocando o resultado em L2;
- inverta L1 colocando o resultado na própria L1;
- intercale L1 com a lista L2, gerando a lista L3. considerando L1, L2 e L3
são ordenadas.
- gere uma lista L2 onde cada registro contém dois campos de informação:
elem contém um elemento de L1, e count contém quantas vezes este elemento
apareceu em L1.
- elimine de L1 todas as ocorrências de um elemento dado, L1 ordenada.
- assumindo que os elementos de L1 são inteiros positivos, forneça os
elementos que aparecem o maior e o menor número de vezes (forneça ambos: os
elementos e o número de vezes).
2) Explique o que acontece nas atribuições abaixo (dica: use desenhos)
a) p^.lig := q; b) p^.lig := q^.lig; c) p^.info := q^.info;
d) p := q; e) p^.lig := nil; f) p^ := q^;
g) p := p^.lig; h) p:= (p^.lig)^.lig;
Exemplo de Trabalho Prático: Editor de Listas
utilizando Lista Dinâmica
Lista Dinâmica