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: [_]