PLE:Unidad5Ejercicio08

/* programa:      ejH508 fecha:         16/04/07 Descipcion:    Lista enlazada. Inserta elementos mediante una función.


 * 1) include
 * 2) include

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

void inserta(nodo **raiz, int n); void muestra(nodo *r);

void main {       nodo *raiz=NULL,*nuevo=NULL; char continuar='s'; int num; while(continuar != 'n') {               // Leemos los datos por teclado cout << "Introduzca el numero "; cin >> num;

inserta(&raiz, num);

// ¿Continuamos ? cout << "¿Desea continuar (s/n)? "; cin >> continuar; }

// imprimir lista muestra(raiz);

cin.ignore; cin.get; }

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

nuevo->n = num;

if(*raiz==NULL || ant->n >= num) //Insertamos al principio {       nuevo->ps = *raiz; *raiz = nuevo; }   else //Buscamos posicion {       while(ant->ps != NULL && ant->ps->n < num) {           ant = ant->ps; }       nuevo->ps = ant->ps; ant->ps = nuevo; } }

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