Código
#include <stdio.h>
#include <stdlib.h>
struct lista{ //estructura
int dato;
struct lista *sig;
struct lista *ant;
};
typedef struct lista nodo;
int menu(void);
nodo *CrearLista(nodo *registro);
void MostrarLista(nodo *registro);
main(){
nodo *prin;
int op;
do{
system("cls");
op=menu();
switch(op){
case 1:
prin=(nodo *)malloc(sizeof(nodo));
prin=CrearLista(prin);
break;
case 2:
MostrarLista(prin);
break;
case 3:
case 4:
case 5:
printf("hasta luego\n");
default:
getch();
}
}while(op != 5);
getch();
}
int menu(void){
int opcion;
do{
printf("1. Crear Lista\n");
printf("2. Mostrar Lista\n");
printf("3. Insertar en Lista\n");
printf("4. Borrar dato\n");
printf("5. Salir\n");
printf("Ingrese la Opcion: ");
scanf("%d",&opcion);
if(opcion<1 || opcion>5)
printf("opcion no valida\n");
}while(opcion<1 || opcion>5);
return(opcion);
}
nodo *CrearLista(nodo *registro){
registro->ant=NULL;
while(registro->sig != NULL){
printf("Introducir dato (introducir 0 para terminar): ");
scanf("%d",®istro->dato);
if(registro->dato == 0){
registro->sig = NULL;
printf("lista creada");
getch();
}
else{
registro->sig=(nodo *)malloc(sizeof(nodo));
registro->sig->ant=registro;
registro=registro->sig;
}
}
return(registro);
}
void MostrarLista(nodo *registro){
while(registro->sig != NULL){
printf("%d", registro->dato);
registro=registro->sig;
}
return;
}
EDIT:
weno gracias ferno por ayudarme lo he solucionado con este codigo en la funcion mostrar c:
Código
void MostrarLista(nodo *registro){
while(registro->ant != NULL)registro=registro->ant;//rewind
while(registro->sig != NULL){
printf("%d", registro->dato);
registro=registro->sig;
}
getch();
return;
}










Autor


En línea
