Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Lista Simplemente Enlazada

  • 0 Respuestas
  • 1677 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado [Z]tuX

  • *
  • Underc0der
  • Mensajes: 27
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« en: Mayo 05, 2013, 09:15:02 pm »
Hola, últimamente he estado trabajando mucho con listas dinámicas, así que hoy traigo un ejemplo de una lista Simplemente Enlazada en lenguaje C, el cual requiere de uso de apuntadores, no es nada del otro mundo si se tiene claro el concepto, por lo que si no conoces las Listas Simplemente Enlazadas, te recomiendo que leas este artículo de Wikipedia. https://es.wikipedia.org/wiki/Lista_(inform%C3%A1tica)

Código: C
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. /* Ejemplo de Lista Simplemente Enlazada
  5.  * [Z]tuX
  6.  * http://ztux.blogspot.com/
  7.  */
  8.  
  9. typedef struct Node{
  10.     struct Node *next;
  11.     int data;
  12. }node;
  13.  
  14. node *newList(node *list);
  15. node *insertInList(int data,node *list);
  16. void showList(node *list);
  17. int isEmpty(node *list);
  18.  
  19.  
  20. int main(){
  21.     node *LISTA = newList(LISTA);
  22.     LISTA=insertInList(5,LISTA);
  23.     LISTA=insertInList(6,LISTA);
  24.     LISTA=insertInList(90,LISTA);
  25.     LISTA=insertInList(0,LISTA);
  26.     LISTA=insertInList(915,LISTA);
  27.     showList(LISTA);
  28.     return 0;
  29. }
  30.  
  31. node *newList(node *list){
  32.     return(list=NULL);
  33. }
  34.  
  35. int isEmpty(node *list){
  36.     return (list==NULL);
  37. }
  38.  
  39. node * insertInList(int data,node *list){
  40.     node * new_Node;
  41.     new_Node = (node*)malloc(sizeof(node));
  42.     node * aux;
  43.     //First, check if the new node is not NULL
  44.     if(new_Node!=NULL){
  45.         new_Node->data=data;
  46.         new_Node->next=NULL;
  47.         if(isEmpty(list)){
  48.             //If the list is empty...
  49.             list=new_Node;
  50.         }else{
  51.             //If not is empty...
  52.             aux = list;
  53.             while(aux->next!=NULL){
  54.                 aux=aux->next;
  55.             }
  56.             aux->next=new_Node;
  57.         }
  58.     }else{
  59.         printf("[!]There isn't space in memory...");
  60.     }
  61.     return list;
  62. }
  63.  
  64. void showList(node *list){
  65.     node *aux;
  66.     for(aux=list;aux!=NULL;aux=aux->next){
  67.         printf("Data: %d\n",aux->data);
  68.     }
  69. }
  70.  

Salud[OS]

 

¿Te gustó el post? COMPARTILO!