LISTAS ENLAZADAS C++

Aquí les dejo el código fuente de listas enlazadas, espero y les sirva

   1: //Julio César Leyva Rodriguez
   2: //Instituto Tecnologico de Los Mochis
   3: //Listas enlazadas
   4: #include <iostream.h>
   5: #include <conio.h>
   6:  
   7:  
   8:  
   9:  
  10: typedef int tipodatolista;
  11:  
  12:  
  13: typedef struct nodo
  14: {
  15: tipodatolista dato;                   
  16: struct nodo *siguiente;
  17: }tiponodo;
  18:  
  19:  
  20: typedef tiponodo *pnodo;
  21:  
  22:  
  23: //Funcion para insertar un nodo
  24:                                     
  25: void insertar(pnodo *n)
  26: {
  27: tipodatolista d;
  28: cout<<"Inserte el dato ";    cin>>d;
  29:  
  30:  
  31: pnodo nuevo;
  32: pnodo anterior;
  33:  
  34:  
  35:  
  36:  
  37: nuevo=new tiponodo;
  38: nuevo->dato=d;
  39: nuevo->siguiente=NULL;
  40:  
  41:  
  42:  
  43:  
  44:  
  45:  
  46: if(*n==NULL)
  47:     {          
  48:         *n=nuevo;
  49:         anterior=nuevo;
  50:     }
  51: else
  52:     {                        
  53:         anterior->siguiente=nuevo;
  54:     anterior=nuevo;
  55:         }
  56:  
  57:  
  58:  
  59:  
  60:  
  61:  
  62: }
  63:  
  64:  
  65: //Imprimir lista
  66:  
  67:  
  68: void imprimir(pnodo *p)
  69: {
  70: pnodo aux;
  71: aux=*p;
  72: while (aux!=NULL)
  73:     {
  74:     cout<<"  "<<aux->dato;
  75:     aux=aux->siguiente;
  76:     }                      
  77: getch();
  78: }
  79:  
  80:  
  81: //RESETEAR LISTA
  82: void inicializar(pnodo *i)
  83: {
  84: *i=NULL;
  85: cout<<"Se ha inicializado la lista";
  86: }
  87:  
  88:  
  89:  
  90:  
  91: void menu(pnodo *menu)
  92: {
  93: int op;
  94: while(op!=5)                                             
  95:     {
  96:         clrscr();
  97:     gotoxy(5,1);    cout<<"Menu";
  98:     gotoxy(1,2);    cout<<"1. Inicializar";
  99:         gotoxy(1,3);    cout<<"2. Insertar";
 100:     gotoxy(1,4);    cout<<"Eliga una opcion [     ]";
 101:         gotoxy(21,4);    cin>>op;
 102:  
 103:  
 104:     switch(op)
 105:         {
 106:         case 1:
 107:             gotoxy(40,2);    inicializar(menu);
 108:             break;
 109:         case 2:
 110:             gotoxy(40,2);    insertar(menu);
 111:                         break;
 112:          }                     
 113:  
 114:  
 115:     }
 116: }
 117:  
 118:  
 119: main()               
 120: {
 121: pnodo lista;
 122: menu(&lista);
 123: }
 124: //Listas enlazadas estructura de datos
0