Baixe o app para aproveitar ainda mais
Prévia do material em texto
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).
Compartilhar