// LISTA ENCADEADA SIMPLES #include #include #include #include using namespace std; int main(){ setlocale(LC_ALL, "Portuguese"); struct LISTA{ int num; LISTA *prox; }; LISTA *inicio = NULL; LISTA *fim = NULL; LISTA *aux; LISTA *anterior; int op, numero, achou; do{ system("cls"); cout<<"\nMenu de OPÇÕES\n"; cout<<"\n1 - Inserir no início da lista"; cout<<"\n2 - Inserir no fim da lista"; cout<<"\n3 - Consultar toda a lista"; cout<<"\n4 - Remover da lista"; cout<<"\n5 - Esvaziar a lista"; cout<<"\n6 - Sair"; cout<<"\nDigite a sua opção: "; cin>>op; if(op <1 || op>6){ cout<<"Opção Inválida\n"; getch(); } //Inserir no inicio if(op ==1){ cout<<"\nDigite o número a ser inserido no início da lista: "; LISTA *novo = new LISTA(); //cin>>*novo.num; cin>>novo->num; if(inicio == NULL){ inicio = novo; fim = novo; fim->prox = NULL; }else{ novo->prox=inicio; inicio=novo; } cout<<"Numero inserido no início da lista"; getch(); } //Inserir no fim if(op == 2){ cout<<"\nDigite o número a ser inserido no fim da lista: "; LISTA *novo = new LISTA(); cin>>novo->num; if(inicio == NULL){ inicio = novo; fim = novo; fim->prox = NULL; } else{ fim->prox = novo; fim = novo; fim->prox = NULL; } cout<<"Número inserido no fim da lista"; getch(); } //Consultar toda a lista if(op==3){ if(inicio == NULL){ cout<<"Lista vazia\n"; getch(); } else{ cout<<"\nConsultando toda a lista\n"; aux = inicio; while(aux !=NULL){ cout<num<<" "; aux = aux->prox; } getch(); } } //Remover numero da lista if(op == 4){ if(inicio == NULL){ cout<<"Lista vazia\n"; getch(); } else{ cout<<"\nDigite o numero a ser removido: "; cin>>numero; aux = inicio; anterior = NULL; achou = 0; while(aux != NULL){ if(aux->num == numero){ achou++; if(aux == inicio){ inicio = aux->prox; delete(aux); aux = inicio; }else if(aux == fim){ anterior->prox = NULL; fim = anterior; delete(aux); aux = NULL; } else{ anterior->prox = aux->prox; delete(aux); aux = anterior->prox; } } else{ anterior = aux; aux= aux->prox; } } if(achou == 0){ cout<<"Número não encontrado\n"; getch(); } else if(achou == 1){ cout<<"Número removido 1 vez\n"; getch(); } else{ cout<<"Número removido "<prox; delete(aux); aux = inicio; } cout<<"Lista esvaziada\n"; getch(); } } }while(op != 6); system("pause"); return 0; }