PLE:Unidad5Ejercicio09

/* programa:      ejH509 fecha:         16/04/07 Descipcion:    Lista enlazada. Inserta y elementos mediante un funciónes.


 * 1) include
 * 2) include
 * 3) include

struct nodo{ int n;       nodo *ps; };

int menu; void insertaPrincipio(nodo **raiz, int n); void insertaFinal(nodo **raiz, int n); void eliminaPrincipio(nodo **raiz); void eliminaFinal(nodo **raiz); void muestra(nodo *r);

void main {       nodo *raiz=NULL; int num, opc;

do       { opc = menu; switch(opc) {                       case 1: cout << "Introduzca el numero "; cin >> num; insertaPrincipio(&raiz, num); break; case 2: cout << "Introduzca el numero "; cin >> num; insertaFinal(&raiz, num); break; case 3: eliminaPrincipio(&raiz); break; case 4: eliminaFinal(&raiz); break; }               cout << endl << "Lista " << endl; muestra(raiz); cout << endl << "Pulse una tecla para continuar"; cin.ignore; cin.get; }while(opc != 5); }

int menu {       int n;        system("cls"); cout << "1- Inserta por el principio" << endl; cout << "2- Inserta por el final" << endl; cout << "3- elimina por el principio" << endl; cout << "4- elimina por el final" << endl; cout << "5- Salir" << endl; cin >> n;       return n; }

void insertaPrincipio(nodo **raiz, int num) {   nodo *nuevo; // Primero creamos el nodo nuevo nuevo=new nodo;

nuevo->n = num;

nuevo->ps = *raiz; *raiz = nuevo; }

void insertaFinal(nodo **raiz, int num) {   nodo *nuevo, *ant=*raiz; // Primero creamos el nodo nuevo nuevo=new nodo;

nuevo->n = num;

if(*raiz==NULL) // Lista vacia? {       nuevo->ps = *raiz; *raiz = nuevo; }   else //Buscamos la ultima posicion {       while(ant->ps != NULL) {           ant = ant->ps; }       nuevo->ps = ant->ps; ant->ps = nuevo; } }

void eliminaPrincipio(nodo **raiz) { }

void eliminaFinal(nodo **raiz) { }

void muestra(nodo *r) {       while(r!=NULL) {               // Muestra datos del nodo cout << r->n << '\t'; // Saltamos al siguiente r = r->ps; } }