Você está na página 1de 2

Professora Mariela I.

Corts

10/9/2012

Estruturas de Dados I Lista de Exerccios 3 - Filas e Pilhas


Objetivos: Reforar os conceitos de Tipo Abstrato de Dados. Avaliar a utilizao e aplicabilidade dos TADs: Lista, Pilha e Fila.

1. Defina a interface dos Tipos Abstratos de Dados: Lista Pilha Fila

A interface consiste na definio das operaes bsicas utilizadas para a manipulao das estruturas de dados detalhando o seu cabealho completo, junto com uma breve descrio do que a operao faz. Nota: Para a resoluo dos exerccios a seguir devero ser utilizadas exclusivamente as operaes definidas nestas interfaces respeitando a definio do TAD. 2. Dada uma lista encadeada ordenada, escreva um algoritmo que inverta a ordem dos elementos na lista, utilizando para isso uma pilha. Determine a complexidade do seu algoritmo. 3. Escreva um algoritmo para ordenar pilhas, sendo que no final do processamento os elementos da pilha devem estar dispostos em ordem crescente de seus valores. Determine qual a estrutura auxiliar mais adequada para suportar o processo. Determine a complexidade do seu algoritmo. 4. Escreva um algoritmo para ordenar filas, sendo que no final do processamento os elementos da fila devem estar dispostos em ordem crescente de seus valores. Determine qual a estrutura auxiliar mais adequada para suportar o processo. Determine a complexidade do seu algoritmo. 5. Escreva um algoritmo que fornea o maior, o menor e a mdia aritmtica dos elementos de uma: Pilha. Fila.

6. Escrever um algoritmo que leia um nmero indeterminado de valores inteiros. O valor 0 (zero) finaliza a entrada de dados. Para cada valor lido, determinar se ele um nmero par ou mpar. Se o nmero for par, ento inclu-lo na FILA PAR; caso contrrio, inclu-lo 1

Professora Mariela I. Corts

10/9/2012

na FILA MPAR. Aps o trmino da entrada de dados, retirar um elemento de cada fila alternadamente (iniciando-se pela FILA MPAR) at que ambas as filas estejam vazias. Se o elemento retirado de uma das filas for um valor positivo, ento inclu-lo em uma PILHA; caso contrrio, remover um elemento da PILHA. Finalmente, escrever o contedo da pilha. 7. Escreva um algoritmo que converta uma pilha implementada em lista linear contgua (vetor), em uma pilha implementada em lista linear encadeada. Considerar a lista contgua com no mximo 500 elementos: 8. Dada uma lista ligada L, e outra P, contendo inteiros, ordenados em forma crescente. A operao PrintLots(L, P) imprime os elementos de L nas posies especificadas por P. Escreva o procedimento PrintLots(L, P). Devem ser utilizadas exclusivamente as operaes do TAD Lista bsicas. Qual a complexidade do seu algoritmo? 9. Dadas duas listas ordenadas L1 e L2, Escreva um algoritmo que calcule L1 L2 Escreva um algoritmo que calcule L1 L2

10. Escreva uma funo que adicione dois polinmios. 11. Uma estratgia alternativa para a remoo de elementos chamada de lazy deletion. Para remover um elemento, simplesmente marcado (usando um atributo extra). O numero de elementos removidos e no removidos na lista mantido como parte da estrutura de dados. Quando existirem tantos elementos removidos quanto no removidos, a lista inteira percorrida executando o algoritmo de remoo padro nos elementos marcados. Faa as modificaes necessrias na respectiva estrutura de dados e escreva as rotinas para implementar as operaes usando listas encadeadas aplicando a estratgia lazy deletion. Note que esta operao faria parte do TAD Lista, portanto na implementao realizada a manipulao direta da estrutura de dados. 12. Escreva um programa para avaliar uma expresso postfixa. 13. Escreva um programa para checar o balanceamento de smbolos. Dependendo da linguagem utilizada, o conjunto dos smbolos pode variar. Por exemplo, em Pascal seriam: begin/end, ( ), [ ], { }; enquanto que em C: /* */, ( ), [ ], { }.

Você também pode gostar