Está en la página 1de 2

#include <stdio.

h>
#include <stdlib.h>

int main(int argc, char *argv[]) {


struct Auto {
char matricula[15];
char nombre[150];
int color;
struct Auto *ptrSiguiente;
};

struct Auto *pilaAutos = NULL;


struct Auto *ptr = NULL;

int opcion = 0;
do {
printf("PUSH[1] ");
printf("POP[2] ");
printf("Recorrer[3] ");
printf("SEEK[4] ");
printf("Salir[0] ");
printf("Opcion: ");
scanf("%d", &opcion);

switch (opcion) {
case 1:
//Crear nodo
ptr = (struct Auto *) malloc(sizeof(struct Auto));
printf("Matricula: ");
scanf("%s", &ptr->matricula);
printf("Nombre: ");
scanf("%s", &ptr->nombre);
printf("Color: ");
scanf("%d", &ptr->color);
ptr->ptrSiguiente = NULL;

//Enlazar siempre al inicio


ptr->ptrSiguiente = pilaAutos;
pilaAutos = ptr;

break;
case 2:
ptr = pilaAutos;
if (ptr != NULL) {
printf("%s\t\t%s\n", ptr->matricula, ptr->nombre);
pilaAutos = ptr->ptrSiguiente;
free(ptr);
} else {
printf("Pila vacia\n");
}
break;
case 3:
ptr = pilaAutos;
while (ptr != NULL) {
printf("%s\t\t%s\n", ptr->matricula, ptr->nombre);
ptr = ptr->ptrSiguiente;
}
break;
case 4:
ptr = pilaAutos;
if (ptr != NULL) {
printf("%s\t\t%s\n", ptr->matricula, ptr->nombre);
} else {
printf("Pila vacia\n");
}
break;
case 0:
break;
default:
break;
}
} while (opcion != 0);

return 0;
}

También podría gustarte