Advertisement
Guest User

Untitled

a guest
Jul 17th, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.22 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. #define DeclararLista(def_estructura, nom_lista) struct def_lista{ def_estructura *actual; struct def_lista *siguiente;} nom_lista = {NULL, NULL};
  4.  
  5. #define AgregarALista( lista, estructura ) if( lista.actual == NULL) { lista.actual = &estructura;} else { struct def_lista *lista_temporal = &lista; struct def_lista lista_siguiente ={NULL,NULL} ; while(lista_temporal->siguiente != NULL)  lista_temporal = lista_temporal->siguiente;  lista_temporal->siguiente = &lista_siguiente; lista_siguiente.actual = &estructura; } ;
  6.  
  7. struct Rabanito
  8. {
  9.     int A;
  10.     int B;
  11. };
  12.  
  13. int main()
  14. {
  15.  
  16.   struct Rabanito rabanito_verde = {11,12};
  17.   struct Rabanito rabanito_rojo = {4444,8888};
  18.  
  19.  
  20.   DeclararLista(struct Rabanito, lista_rabanitos);
  21.  
  22.   AgregarALista(lista_rabanitos, rabanito_verde);
  23.   AgregarALista(lista_rabanitos, rabanito_rojo);
  24.   AgregarALista(lista_rabanitos, rabanito_verde);  /* agrego otra vez el verde a la lista*/
  25.  
  26.  
  27.    
  28.   printf("valor A: %u\n",lista_rabanitos.actual->A); /*rabanito verde*/
  29.   printf("valor A: %u\n",lista_rabanitos.siguiente->actual->A);  /*rabanito rojo*/
  30.   printf("valor A: %u\n",lista_rabanitos.siguiente->siguiente->actual->B);  /*rabanito verde*/
  31.  
  32.  
  33.   return 0;
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement