Sei sulla pagina 1di 2

Disciplina: Algoritmos e Estruturas de Dados (AED)

Profo: Gerson R. Santos Data: 30 / 03 / 2016

Aluno:________________________________________________

Lista de Exerccio

1. Dada uma fila de inteiros, escreva um programa que exclua todos os nmeros
negativos sem alterar a posio dos outros elementos da fila.

2. Faa uma funo que receba trs filas, duas j preenchidas em ordem crescente e
preencha a ltima com os valores das duas primeiras em ordem crescente.

3. Considere as seguintes definies de tipos:

#define MAX 100 /* mximo de elementos na lista */

typedef struct t_elemento


{
int valor;
char rtulo;
int info;
} t_elem;

typedef struct t_tipo_lista


{
t_elem elem[MAX];
int num;
}t_lista;

a. Escreva em C a funo verificaOrdenada( ) que recebe uma lista do tipo


acima e retorna 1, se os elementos esto ordenados por valor, ou 0, caso
contrrio.

b. Escreva a funo merge() que recebe duas listas (ordenadas) e faz o


merge dessas listas, retornando a lista resultante. As lista originais devem
ficar vazias.

c. Escreva a funo separa( ) que recebe uma lista e separa essa lista em
duas outras listas, de acordo com o campo rtulo. Elementos com rtulo
A ou D ficam numa das listas e os demais na outra.

d. Escreva em C a funo recursiva inverteLista( ) que inverte uma lista do


tipo t_lista. A funo deve receber como parmetro o vetor onde esto os
elementos e o incio e o fim do intervalo considerado.

4. Dada uma lista ordenada, escreva as seguintes funes


a. verifique se a lista est ordenada e retorna 0 se estiver desordenada, -1 se
em ordem decrescente ou 1 se em ordem crescente.

b. copia a lista em outra lista tambm recebida como parmetro,


inicialmente vazia

c. copia a lista em outra lista tambm recebida como parmetro,


inicialmente vazia, eliminando repetidos

d. inverte a lista armazenando o resultado em outra lista inicialmente vazia


recebida como parmetro

e. inverte a lista armazenando o resultado na prpria lista

f. gera uma lista tambm recebida como parmetro, inicialmente vazia,


onde cada registro contm, alm dos dados da primeira lista, um campo
inteiro representando a quantidade de vezes que o elemento apareceu na
lista

g. elimina da lista todas as ocorrncias de um dado elemento. Considere a


lista desordenada

h. elimina da lista todas as ocorrncias de um dado elemento. Considere a


lista ordenada

5. Desenvolva um programa, implementando as seguintes operaes em pilhas:

a. inicializaPilha (): cria uma nova pilha vazia.

b. push(): inclui (empilha) um elemento da pilha

c. pop(): exclui (desempilha) um elemento da pilha

d. pilhaVazia(): retorna se a pilha est vazia ou no

e. consultaPilha(): retorna o elemento que est no topo da pilha sem retir-


lo da pilha.

f. finalizaPilha(): libera a memria alocada pela pilha

g. Implemente a pilha utilizando vetor

h. Desenvolva uma rotina chamada pop2() para desempilhar dois elementos


da pilha.

i. Desenvolva uma rotina chamada popN() para desempilhar n elementos a


partir do topo da pilha.

Potrebbero piacerti anche