Escolar Documentos
Profissional Documentos
Cultura Documentos
Instituto de Ciências Exatas
Departamento de Ciência da Computação
Estrutura de Dados e Algoritmos II
Lista de Exercícios II (Bônus)
Professora: Petrina de Assis da Silva Kimura (petrina@dcc.ufam.edu.br)
Data de entrega: 24/03/2011
1) Crie um programa que implemente as seguintes operações de listas encadeadas sobre um
conjunto de números inteiros:
a. Inserção de um número inteiro na lista;
b. Impressão de todos os elementos inseridos na lista;
c. Remoção de um elemento, fornecido pelo usuário, da lista.
d. Apagar a lista
Além disso, o seu programa deve fornecer o seguinte menu para inserção, impressão e
remoção dos dados da lista:
Lista encadeada
1 – Inserir um elemento
2 – Mostrar todos os elementos
3 – Remover um elemento
0 – Sair do programa (Chama a função apagaLista)
Escolha uma das opções acima: ...
3) Crie um programa que implemente as seguintes operações de lista circular sobre um
conjunto de números inteiros:
a. Inserção de um elemento na lista circular;
b. Impressão de todos os elementos inseridos na lista circular;
c. Remoção de um elemento, fornecido pelo usuário, da lista circular.
d. Remoção de todos os elementos da lista circular.
Alem disso, o seu programa deve fornecer um menu para manipulação da lista circular
semelhante ao apresentado na questão 1.
4) Crie um programa que implemente as seguintes operações de lista duplamente encadeada
sobre um conjunto de números inteiros:
a. Inserção de um elemento a direita do primeiro elemento da lista duplamente
encadeada;
b. Inserção de um elemento a esquerda do primeiro elemento da lista duplamente
encadeada;
c. Impressão de todos os elementos inseridos na lista duplamente encadeada;
d. Remoção de um elemento, fornecido pelo usuário, da lista duplamente
encadeada.
Alem disso, o seu programa deve fornecer um menu para manipulação da lista duplamente
encadeada semelhante ao apresentado na questão 1.
5) Escreva um programa em C que receba uma expressão formada somente por “abre
parênteses” e “fecha parênteses” e verifica se esta expressão está com os parênteses
organizados de forma correta. Por exemplo (os espaços entre os parênteses foram colocados
apenas para facilitar a leitura. Na expressão de entreda, só deve haver parênteses):
Para a expressão “( ( ) ) ( )”, o programa deve retornar “Está bem formado”.
Para a expressão “( ( )”, o programa deve retornar “Não está bem formado”.
Para a expressão “( ) ) (”, o programa deve retornar “Não está bem formado”.
Dica: utilize a estrutura de dados pilha para resolver esta questão.
6. Considere duas listas simplesmente encadeada de números inteiros L1 e L2.
a) Crie uma lista L3 que seja a união sem repetição de L1 e L2. Imprima L3.
b) Crie uma lista L4 que seja a intersecção dos elementos que estão em L1 e L2. Imprima
L4.
7) Escreva uma função Troca que troca de lugar dois elementos de uma lista encadeada, ou
seja, o elemento da posX deve ir para posY e da posY deve ir para posX, as posições X e Y
devem ser definidas pelo usuário. Ao final da execução, o programa deve mostrar ao usuário a
lista antes e depois da troca.
8) Dada uma pilha s1, transfira os elementos dela para a pilha s2 de modo que os elementos
de s2 estejam na mesma ordem que em s1.
9) Uma "fila de duas pontas" (no inglês usualmente chamada dequeue) é uma estrutura de
dados que funciona como uma combinação de fila e pilha. Elementos podem entrar ou sair da
fila por ambas as pontas. Enquanto na fila, elementos não mudam de posição relativa.
Implemente uma dequeue com as operações: entraNaFila e saiDaFila que correspondam as
operações em uma fila normal, e também com as operações Desiste e FuraFila, que
correspondem a se remover o elemento no fim da fila e inserir um elemento no começo da fila,
respectivamente.
ATENÇÃO
As questões devem ser entregues até o dia 24/03/11.
Listas entregues fora do prazo serão desconsideradas.
2. O que entregar
a. “AUTHOR.txt”: arquivo que contém o nome do autor das questões, e o respectivo
email e códigos de matrícula.
b. “README.txt”: arquivo contendo informações sobre compilação e execução da
sua aplicação, dependências para execução do seu programa, ou seja, quais programas
precisam estar instalados no sistema.
3. Como entregar
O trabalho deve ser entregue para o email petrina@dcc.ufam.edu.br. No título do
email, escrever “[AEDII] Segunda Lista de Exercícios” e no corpo do email escrever o
nome do autor.