12. Nodo: typedef int Tipo, Puntero; struct Nodo { Tipo data; int PNodo; }; const tierra = -1 ,Max = 10; static int av, inicializado = 0; static Nodo AB[Max]; static void inicializar(); int almacLleno(); void crearNodo(Puntero &p); void retornarNodo(Puntero p); void ponerData(Puntero p, Tipo dato); void ponerPNodo(Puntero p,Puntero q); Tipo data(Puntero p); Puntero PNodo(Puntero p); int vacia();
13. Nodo: #include " Nodo_Simulado.h " static void inicializar() { for( int i=0; i<=Max-1; i++ ) AB[i].PNodo=i+1; AB[Max].PNodo = tierra; av = 0; } Tipo almacLleno() { return( av == tierra); } void ponerData( Puntero p, Tipo dato ) { AB[p].data = dato ; } void ponerPNodo( Puntero p, Puntero q ) { AB[p].PNodo = q; } void crearNodo(Puntero &p) { if( almacLleno() ) { ShowMessage("crearNodo: almacenamiento lleno"); exit(1); } if(inicializado == 0) { inicializar(); inicializado = 1; } p = av; av = AB[ax].PNodo; } void retornarNodo( Puntero p ) { AB[p].Pnodo=av; av=p; }
14. Ejemplo Funcional: #pragma argsused void main() { puntero p; string si; cout<<" SIMULACION DE UNA LISTA ENLAZADA"<<endl; cout<<endl<<endl<<"si desea empezar con la simulacion "<<endl; cout<<"presione ' 1 ' caso contrario ' 2 ' "; cin>>si; if(si == "1") { cout<<endl<<endl<<endl; cout<<"Presione ' a ' poner otro elemnto"<<endl; cout<<"Presione ' s ' sacar un elemnto"<<endl; cout<<"Presione ' x ' para terminar la simulacion ";
15. Ejemplo Funcional: cin>>si; int fin =0; while(si != "x") { if (si == "a") { CrearNodo(p); tipo dato;cout<<"cual es el elemento: "; cin>>dato; PonerData(p,dato); cout<<"la lista actual es : "<<endl<<endl<<endl; fin++; VerLista(fin); cout<<endl<<endl; VerMemoria(); p++; }
17. else { PonerLink(aux-1,aux+1); p--; fin--; VerLista(fin); cout<<endl<<endl; VerMemoria(); } } cout<<endl<<endl<<endl; cout<<"Presione ' a ' poner otro elemnto"<<endl; cout<<"Presione ' s ' sacar un elemnto"<<endl; cout<<"Presione ' x ' para terminar la simulacion "; cin>>si; //p++; } } cout<<endl<<endl<<" fin de la simulacion"<<endl; cout<<" presione entrar para terminar"<<endl; getch(); } Ejemplo Funcional: