laboratório 8

Propaganda
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO
CURSO DE CIÊNCIA DA COMPUTAÇÃO
ESTRUTURA DE DADOS I
L A B O R A TÓ R I O 8
LISTAS EM ALOC AÇ ÃO S EQÜ ENC IAL
1. Considere o registro aluno definido abaixo. Construa uma lista em alocação
seqüencial para guardar 30 alunos. Defina uma variável qAlunos inicializada para
zero no seu programa. Esta variável deve guardar a quantidade de alunos
efetivamente cadastrados na lista.
struct aluno
{
int matricula;
char nome[15];
float n1;
float n2;
float n3;
};
2. Construa uma função que implemente o algoritmo de busca em listas não
ordenadas, mostrado abaixo. A função deve retornar o índice do elemento
procurado ou -1, caso o elemento não esteja na lista.
Algoritmo: Busca de um elemento na lista L
função busca(x)
L[n].chave = x
i = 0
enquanto L[i].chave ≠ x faça
i = i+1
se i ≠ n então
busca = i
senão
busca = -1
% chave encontrada
% chave inexistente
3. Construa uma função que implemente o algoritmo de inserção em listas não
ordenadas, mostrado abaixo. A função deve receber uma referência para um
registro aluno e inseri-lo na lista, caso ele já não esteja presente. A função deve
retornar um valor booleano indicando se a inserção foi bem sucedida.
Algoritmo: Inserção na lista não ordenada L
função insere(x)
se n < M então
| se busca(x) == -1 então
| | L[n] = x
| | n = n + 1
| senão
| | "elemento já está presente"
senão
| "a lista está cheia"
4. O algoritmo mostrado abaixo é o algoritmo convencional de remoção em listas não
ordenadas. Utilizando este algoritmo como base, construa uma função que
implemente o algoritmo de remoção alternativo, aquele que move apenas o último
elemento. A função deve receber a matrícula de um aluno e retornar um valor
booleano indicando se a remoção foi bem sucedida.
Algoritmo: Remoção de um nó da lista L
função remove(x)
se n ≠ 0 então
| indice = busca(x)
| se indice ≠ -1 então
| | removido = L[indice]
| | para i = indice até n-2 faça
| | | L[i] = L[i+1]
| | n = n -1
% lista diminui em uma unidade
| senão
| | "elemento não se encontra na lista"
senão
| "a lista está vazia"
5. Construa o programa principal com um menu de opções para inserir, remover,
buscar e listar os alunos cadastrados.
Separe o código do programa principal do código das funções. O projeto deve
conter os seguintes arquivos:



Alunos.cpp: programa principal
Lista.cpp: implementação das funções de tratamento de listas
Lista.h: protótipo das funções de tratamento de listas
-----------------------Lista de Alunos
-----------------------[1] Inserir
[2] Remover
[3] Buscar
[4] Listar
[6] Sair
---------------------Opção: [_]
Download