Buscar

Atividade 06

Prévia do material em texto

ESTRUTURA DE DADOS I
ATIVIDADES DA AULA 06
Faça um programa na linguagem C/C++ que implemente uma Lista por meio de um vetor de inteiros, de tamanho n, alocado dinamicamente. A implementação deverá contemplar as operações de busca, inserção e remoção de elementos na lista. Para isso, o programa deverá apresentar um menu para que o usuário possa escolher a operação desejada. Após cada operação realizada a Lista deverá ser apresentada na tela.
#include <iostream>
using namespace std;
int MAXTAM;
int *Lista;
int preenchidos = 0;
int Frente, Tras;
int busca(int bus){
int i = 0;
 while( i < MAXTAM){
 if(Lista[i] == bus){
 return i;
 }
 i++;
 }
 return -1;
}
void insere(int x){
 if(preenchidos < MAXTAM){
 if(busca(x) == -1){
 for(int i=0; i<MAXTAM; i++){
 if (busca(x) == -1){
 Lista[preenchidos] = x;
 preenchidos = preenchidos + 1;
 }
 }
 }else{
 cout<< "Elemento já existe "<< endl;
 }
 }else{
 cout<< "Overflow" << endl;
 }
}
void remover(int x){
 int indice, valorRecuperado;
 if (preenchidos != 0){
 indice = busca(x);
 if(indice != -1){
 valorRecuperado = Lista[indice];
 for(int i = indice; i< preenchidos; i++){
 Lista[i] = Lista[i+1];
 }
 preenchidos = preenchidos - 1;
 }else{
 cout << "Elemento não existe! "<<endl;
 }
 }else{
 cout << "Underflow" << endl;
 }
}
int main(){
 int opcao, bus, num, x;
 cout << "Informe o tamanho do vetor: "<< endl;
 cin >> MAXTAM;
 Lista = new int[MAXTAM];
 for(int i = 0; i < MAXTAM; i++){
 cout << "Informe o indice " << i << " do vetor : "<< endl;
 cin >> Lista[i];
 preenchidos = preenchidos + 1;
 }
 do{
 cout << "MENU DE OPCAO: " << endl;
 cout << "--------------------------------" << endl;
 cout << "PARA BUSCA: 1" << endl;
 cout << "PARA INSERCAO: 2" << endl;
 cout << "PARA REMOCAO: 3" << endl;
 cout << "PARA SAIR: 0" << endl;
 cout << "--------------------------------" << endl<< endl;
 cin >> opcao;
 switch(opcao){
 case 1:
 cout << "Qual numero voce deseja buscar: "<< endl;
 cin >> bus;
 if(busca(bus) == -1){
 cout << "Esse numero nao esta na lista: "<< endl;
 }else{
 cout << "Numero buscado esta no indice " <<busca(bus) << endl;
 }
 break;
 case 2:
 cout << "Qual numero voce deseja inserir: "<< endl;
 cin >> num;
 insere(num);
 break;
 case 3:
 cout << "Qual numero voce deseja remover: "<< endl;
 cin >> x;
 remover(x);
 break;
 }
 for(int i = 0; i < MAXTAM; i++){
 cout << Lista[i]<< " ";
 }
 cout<< endl<<endl;
 }while(opcao != 0);
 delete[] Lista;
 return 0;
}

Continue navegando

Outros materiais