miércoles, 8 de junio de 2011

Lista enlazada simple

#include<stdio.h>
/*typedef struct{
char nombre[30];
   int edad;
   registro *siguiente;      
}registro; ESTO ES IMPOSIBLE*/
struct elemento_lista{
   char nombre[30];
   int edad;
   struct elemento_lista *siguiente;      
};
//Defino un nuevo tipo de dato al que llamare
//nodo
typedef struct elemento_lista nodo;
void mostrar_lista(nodo *principio){
     nodo *registro;
     registro=principio;
     int cont=1;
     char seguir='s';
     printf("\n****CONTENIDO DE LA LISTA DE MIS AMIGOS****");
     do{
       printf("\n********************");
       printf("\nAMIGO %d",cont++);
       printf("\nNombre: %s",registro->nombre);
       printf("\nEdad: %d",registro->edad);
       if(registro->siguiente!=0)
          registro=registro->siguiente;                      
       else{
          printf("\n\nFIN DE LA LISTA");
          seguir='n';
       }
     }while(seguir=='s');
     return;          
}
main(){
     nodo *registro,*principio;
     int cont=1;
     char seguir='s';
    
     registro=(nodo *) malloc(1*sizeof(nodo));
     principio=registro;
    
     do{
       printf("\n***Amigo %d***",cont++);
       printf("\nNombre: ");
       scanf(" %[^\n]",registro->nombre);
       printf("\nEdad: ");
       scanf("%d",&registro->edad);
       printf("\nDeseas tener un nuevo amigo (s/n): ");
       scanf(" %c",&seguir);
       if(seguir=='s'){
           registro->siguiente=(nodo *)malloc(1*sizeof(nodo));
           registro=registro->siguiente;
       }
       else{
           printf("\nLista enlazada finalizada");
           registro->siguiente=0;
       }
     }while(seguir=='s');
     //enlazar_lista(principio);
     mostrar_lista(principio);
     getchar();
     getchar();
}

No hay comentarios:

Publicar un comentario