Gente, eu consegui fazer o codigo para inserir no inicio e no fim, mas estou com dificuldade em montar a parte de inserir em qualquer lugar da lista, alguem pode me ajudar ?
#include <iostream>
#include <string>
#include <stdlib.h>
using namespace std;
struct Nolista {
Nolista *prox;
int dado;
};
void inicializar(Nolista *&l){
l=NULL;
}
void inserir_inicio(Nolista *&l, int dado){
Nolista * novo = new Nolista;
novo->dado = dado;
novo->prox = NULL;
if(l == NULL){
l = novo;
}else{
novo->prox = l;
l = novo;
}
}
void inserir_fim (Nolista *&l, int dado){
Nolista *novo = new Nolista;
novo->dado = dado;
novo->prox = NULL;
if(l == NULL){
l = novo;
}else{
Nolista *aux = l;
while(aux->prox != NULL){
aux = aux->prox;
}
aux->prox = novo;
}
}
void imprime(Nolista *l){
int cont = 1;
while(l != NULL){
cout<<"Dado: " << l->dado << " " << endl;
l = l->prox;
cont++;
}
}
int main () {
Nolista *L;
int dado, op;
inicializar(L);
while(op != 4){
cout<<"--------------- LISTA ENCADEADA ---------------" << endl;
cout<<"[1] - Inserir no Inicio" << endl;
cout<<"[2] - Inserir no Fim" << endl;
cout<<"[3] - Imprimir Lista" << endl;
cout<<"[4] - Sair" << endl;
cout<<"Opcao: ";
cin >> op;
system("cls");
switch(op){
case 1:
cout<<"Valor a inserir no INICIO: ";
cin>> dado;
inserir_inicio(L,dado);
break;
case 2:
cout<<"Valor a inserir no FIM: ";
cin>> dado;
inserir_fim(L,dado);
break;
case 3:
cout << "============ LISTA ============" << endl;
imprime(L);
break;
case 4:
break;
default:
cout<<"Opcao invalida, tente novamente !!" << endl;
}
}
}