#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<
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 "<
}
}
}
//Limpar a lista
if(op == 5){
if(inicio == NULL){
cout<<"Lista vazia\n";
getch();
}
else{
aux = inicio;
while(aux != NULL){
inicio = inicio->prox;
delete(aux);
aux = inicio;
}
cout<<"Lista esvaziada\n";
getch();
}
}
}while(op != 6);
system("pause");
return 0;
}