Você está na página 1de 3

Centro de Ensino Superior FUCAPI

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: ...

2) Crie um programa que implemente as seguintes operações de  fila  sobre um conjunto de 


números inteiros:
a. Inserção de um elemento na fila;
b. Impressão de todos os elementos inseridos na fila
c. Remoção de um elemento do início da fila.
d. Verificação se a fila está vazia ou não.
e. Apagar a Fila
Alem disso, o seu programa deve fornecer um menu para manipulação da fila semelhante ao 
apresentado na questão anterior.

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

1. Os  códigos fontes dos programas compactados no  formato “.tar.gz” ou  “.zip”, 


juntamente com os seguintes arquivos:

          a. “AUTHOR.txt”: arquivo que contém o nome do autor das questões, e o respectivo 
e­mail 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 “[AED­II] Segunda Lista de Exercícios” e no corpo do e­mail escrever o 
nome do autor.

Você também pode gostar