Advertisement
gonzalob

Untitled

Jan 24th, 2022
1,030
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.17 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. typedef struct
  5. {
  6.     //informacion
  7.     int dato;
  8.     // el siguiente nodo
  9.     struct nodo * siguiente;
  10.  
  11. }nodo;
  12.  
  13. typedef struct
  14. {
  15.     //informacion
  16.     int legajo;
  17.     char nombre[10];
  18. }paciente;
  19.  
  20.  
  21. nodo * inicLista();
  22. nodo * crearNodo(int dato);
  23. void mostrarLista(nodo * lista);
  24. nodo * agregarPpio(nodo * lista, nodo * nuevoNodo);
  25.  
  26. int main()
  27. {
  28.     /*
  29.     int miNumero;
  30.     int otroNumero;
  31.  
  32.     lista miLista;
  33.     lista otraLista;
  34.  
  35.     paciente gonzalo;
  36.     paciente camila;
  37.  
  38.     gonzalo.legajo = 10;
  39.     camila.legajo = 20;
  40.     */
  41.  
  42.     //primer nodo
  43.     nodo * lista;
  44.  
  45.     lista = inicLista();
  46.  
  47.     //LAST IN - FIRT OUT
  48.  
  49.     //ultimo en entrar, primero en salir
  50.  
  51.     //LIFO - PILA
  52.  
  53.     nodo * unNodo = crearNodo(10);
  54.     nodo * otroNodo = crearNodo(20);
  55.     nodo * otroOtroNodo = crearNodo(30); //es el ultimo en agregar pero en realidad es el primero de la lista
  56.  
  57.     lista = agregarPpio(lista,unNodo); //apilar
  58.  
  59.     lista = agregarPpio(lista,otroNodo);
  60.  
  61.     lista = agregarPpio(lista,otroOtroNodo);
  62.  
  63.     mostrarLista(lista);
  64.  
  65.     return 0;
  66. }
  67.  
  68.  
  69. nodo * inicLista()
  70. {
  71.     return NULL;
  72. }
  73.  
  74. nodo * crearNodo(int dato)
  75. {
  76.     nodo * nuevoNodo;
  77.  
  78.     //creo el espacio de memoria de un nodo
  79.     nuevoNodo = (nodo *) malloc(sizeof(nodo));
  80.  
  81.     //asigno la variable "dato" al atributo del nodo llamado "nodo"
  82.     nuevoNodo->dato = dato;
  83.  
  84.     //como no sabemos donde o en que lugar estar el nodo, decimos que el siguiente es NULL o sea NADIE
  85.     nuevoNodo->siguiente = NULL;
  86.  
  87.     return nuevoNodo;
  88. }
  89.  
  90. nodo * agregarPpio(nodo * lista, nodo * nuevoNodo)
  91. {
  92.     if (lista == NULL) //lista vacia
  93.     {
  94.         lista = nuevoNodo; //el primer nodo es el que estoy agregando
  95.     }
  96.     else
  97.     {
  98.         //enlazamos el nuevo nodo con el primero, lo cual hace que la lista sea enlanzada
  99.         nuevoNodo->siguiente = lista;
  100.         //transformamos el nuevo nodo en el nuevo primero
  101.         lista = nuevoNodo;
  102.     }
  103.     return lista;
  104. }
  105.  
  106. void mostrarLista(nodo * lista)
  107. {
  108.     while (lista!=NULL)
  109.     {
  110.         printf("Num: %d\n",lista->dato);
  111.         lista = lista->siguiente;
  112.     }
  113. }
  114.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement