Código
Donde primero y ultimo, no son declarados previamente y no encuentro solución al problema. Sé que esa función llamada "función" no me sirve de nada y que lo mejor es no ponerla, pero en el proyecto que hago dicha función hace algo.
#include<iostream>//cout, cin, fixed, endl #include<iomanip>//setw, setprecision, #include<stdlib.h>//malloc, free #include<conio.h> using namespace std; typedef struct _nodo{ int num; char nombre[10]; struct _nodo *siguiente; }tipoNodo; //variable typedef tipoNodo *pNodo; void mostrar_lista(pNodo *primero, pNodo *ultimo); void agregar_elemento(pNodo *primero, pNodo *ultimo); void borrar_elemento(pNodo *primero, pNodo *ultimo); void funcion(); main(){ pNodo primero = NULL, ultimo=NULL; funcion(); } void funcion(){ for(int i=0; i<5; i++){ agregar_elemento(&primero, &ultimo); } mostrar_lista(&primero, &ultimo); } void agregar_elemento(pNodo *primero, pNodo *ultimo){ pNodo nuevo; cout<<"Dato: "; cin>>nuevo->num; cin>>nuevo->nombre; //nuevo->siguiente=NULL; if(*primero==NULL){ //agrego l?nea nuevo->siguiente=nuevo; *primero = nuevo; *ultimo = nuevo; }else{ //agrego l?nea nuevo->siguiente=*primero; (*ultimo)->siguiente=nuevo; *ultimo=nuevo; } } void mostrar_lista(pNodo *primero, pNodo *ultimo){ pNodo auxiliar, auxiliar2; auxiliar = *primero; auxiliar2 = *primero; cout<<"Mostrando la lista completa"<<endl; if(primero==NULL){ cout<<"No hay elementos en la lista"; }else{ while(auxiliar!=NULL){ cout<<auxiliar->num<<" "<<auxiliar->nombre<<endl; auxiliar = auxiliar->siguiente; if (auxiliar2->siguiente == auxiliar->siguiente){ auxiliar=NULL; } } } } void borrar_elemento(pNodo *primero, pNodo *ultimo){ pNodo temporal, temporal2, previo, actual; int n_borrar; if(primero==NULL){ cout<<"No hay elementos en la lista"; }else{ cout<<"Dame el valor a borrar de la lista"<<endl; cin>>n_borrar; temporal=*primero; temporal2=*primero; if(n_borrar == (*primero)->num){ *primero=(*primero)->siguiente; //agrego l?nea (*ultimo)->siguiente =*primero; cout<<"Elemento borrado: "<<n_borrar<<endl; } else{ previo=*primero; actual=temporal->siguiente; while(actual !=NULL && actual->num!=n_borrar){ previo=actual; actual=actual->siguiente; } if(actual!=NULL){ temporal=actual; previo->siguiente=actual->siguiente; cout<<"El elemento borrado fue: "<<n_borrar; } } } }