Buscar este blog

Mostrando entradas con la etiqueta Codigos de listas. Mostrar todas las entradas
Mostrando entradas con la etiqueta Codigos de listas. Mostrar todas las entradas

16 de enero de 2010

#include
#include
#include

struct nodo {
int val;
struct nodo *siquiente;
};

struct nodo *primero, *ultimo;

void anadir_elemento() {
struct nodo *nuevo;
nuevo = (struct nodo *) malloc (sizeof(struct nodo));
if (nuevo == NULL)
printf("No hay memoria Disponible!\n");

printf("\n Nuevo elemento \n");
printf("Ingrese un valor: ");
scanf("%d", nuevo->val);
nuevo->siquiente = NULL;

if(primero == NULL){
printf("Primer elemento\n");
primero = nuevo;
ultimo = nuevo;
}
else {
ultimo->siquiente = nuevo;
ultimo = nuevo;
}
}

void mostrar_lista() {
struct nodo *auxiliar; /* lo usamos para recorrer la lista */
int i;

i=0;
auxiliar = primero;
printf("\nMostrando la lista completa:\n");
while (auxiliar!=NULL) {
printf("%d ", auxiliar->val);
auxiliar = auxiliar->siquiente;
i++;
}
if (i==0) printf( "\nLa lista está vacía!!\n" );
}


void mostrar_menu() {
printf("\n\nMenú:\n=====\n\n");
printf("1.- Añadir elementos\n");
printf("2.- Mostrar la lista\n");
printf("3.- Salir\n\n");
printf("Escoge una opción: ");
fflush(stdout);
}


int main() {
char opcion;

primero = (struct nodo *) NULL;
ultimo = (struct nodo *) NULL;
do {
mostrar_menu();
opcion = getch();
switch ( opcion ) {
case '1': anadir_elemento();
break;
case '2': mostrar_lista();
break;
case '3': printf("Salida del programa principal\n");
default: printf( "Opción no válida\n" );
break;
}
} while (opcion!='3');
}