Você está na página 1de 2

1ª Lista de Exercícios – Algoritmos e Estruturas de Dados I

Profa Dra Mariá C. V. Nascimento

1) Quais as vantagens de se programar com TADs?


2) Considere dois programas envolvendo um cadastro de funcionários. O programa A foi
construído de acordo com os princípios de TAD. Já o programa B não. Diferencie o
programa A do programa B.
3) Qual a diferença entre alocação sequencial e alocação encadeada?
4) Especifique um problema que é melhor de ser resolvido com uma representação
estática e sequencial e outro que seja melhor resolvido com uma representação
dinâmica e encadeada. Justifique.
5) O que significa alocação sequencial de memória para um conjunto de elementos?
6) O que significa alocação estática de memória para um conjunto de elementos?
7) Quais as vantagens de se utilizar alocação encadeada para um conjunto de elementos?
Quais as possíveis desvantagens?

8) Sabe-se que um número complexo é escrito da forma x + iy, onde i2= -1, sendo x a sua
parte real e y a parte imaginária, ambas representadas por valores reais. Crie um Tipo
Abstrato de Dados (TAD) que represente os números complexos, e que inclua
procedimentos de:
a) Adição(A,B, soma) – soma dois números complexos;
b) Subtração(A, B, sub) – subtrai dois números complexos;
c) Multiplicação(A, B,mult) – multiplica dois números complexos;
d) Divisão(A,B,div)- divide dois números complexos;
e) Criar um numero complexo(A,b,c) – cria número complexo onde os valores de x e y
são definidos;

Utilizem a definição do tipo:


typedef struct{
float parte_real;
float parte_imaginária;
}complexo;

9) Crie o TAD Lista Linear Ordenada (pelo campo chave), tal que sua implementação
sejaencadeada dinâmica, e inclua procedimentos/funções para:
a) Verificar se uma lista está ordenada ou não (a ordem pode ser crescente ou
decrescente).
b) Fazer uma cópia da lista L1 em uma outra lista L2.
c) Fazer uma cópia da lista L1 em outra L2, eliminando os elementos repetidos.
d) Inverter uma lista L1 colocando o resultado em L2.
e) Intercalar duas listas, L1 e L2, gerando uma lista L3. Considere que L1, L2 e L3 estão
ordenadas.
f) Dada uma lista L1, gerar 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.
g) Assumindo que os elementos de uma lista L1 são inteiros positivos, fornecer os
elementos que aparecem o maior e o menor número de vezes (forneça os
elementos e o número de vezes correspondente).

Você também pode gostar