gonzalob

Untitled

Oct 19th, 2021
726
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. typedef struct nodoArbol
  5. {
  6.     struct nodoArbol * izq;
  7.     struct nodoArbol * der;
  8.  
  9.     int dato;
  10.  
  11. }nodoArbol;
  12.  
  13. nodoArbol * inicArbol();
  14. nodoArbol * crearNodoArbol(int dato);
  15. nodoArbol *insertarEnArbol(nodoArbol * arbol, int dato);
  16. void Postorder(nodoArbol * Arbol);
  17. void Preorder(nodoArbol * Arbol);
  18. void Inorder(nodoArbol * Arbol);
  19.  
  20.  
  21. int main()
  22. {
  23.    nodoArbol * raiz = inicArbol();//null
  24.    raiz = insertarEnArbol(raiz,10); //10
  25.    raiz = insertarEnArbol(raiz,5); //10
  26.    raiz = insertarEnArbol(raiz,20); //10
  27.  
  28.    printf("mostrando pre \n");
  29.  
  30.    Preorder(raiz);
  31.  
  32.    printf("\n\n");
  33.  
  34.    printf("mostrando in \n");
  35.  
  36.    Inorder(raiz);
  37.  
  38.    printf("\n\n");
  39.  
  40.    printf("mostrando post \n");
  41.  
  42.    Postorder(raiz);
  43.  
  44.    printf("\n\n");
  45.  
  46.     return 0;
  47. }
  48.  
  49. nodoArbol * inicArbol()
  50. {
  51.     return NULL;
  52. }
  53.  
  54. nodoArbol * crearNodoArbol(int dato)
  55. {
  56.     nodoArbol * aux = (nodoArbol*)malloc(sizeof(nodoArbol));
  57.     aux->dato = dato;
  58.     aux->der = NULL;
  59.     aux->izq = NULL;
  60.  
  61.     //(*aux).dato.edad = edad;
  62.  
  63.     return aux;
  64. }
  65.  
  66. nodoArbol *insertarEnArbol(nodoArbol * arbol, int dato)
  67. {
  68.     if (arbol == NULL)
  69.     {
  70.         nodoArbol * nuevoNodo = crearNodoArbol(dato);
  71.         arbol = nuevoNodo;
  72.     }
  73.     else //arbol tiene informacion!
  74.     {
  75.         if (dato < arbol->dato)
  76.         {
  77.             arbol->izq = insertarEnArbol(arbol->izq,dato);
  78.         }
  79.         else
  80.         {
  81.             arbol->der = insertarEnArbol(arbol->der,dato);
  82.         }
  83.     }
  84.     return arbol;
  85. }
  86.  
  87. void Preorder(nodoArbol * Arbol)
  88. {
  89.    if(Arbol != NULL)
  90.    {
  91.       printf(" %d ",Arbol->dato);
  92.       Preorder(Arbol->izq);
  93.       Preorder(Arbol->der);
  94.    }
  95. }
  96.  
  97. void Inorder(nodoArbol * Arbol)
  98. {
  99.    if(Arbol!=NULL)
  100.    {
  101.       Inorder(Arbol->izq);
  102.       printf(" %d ",Arbol->dato);
  103.       Inorder(Arbol->der);
  104.    }
  105. }
  106.  
  107. void Postorder(nodoArbol * Arbol)
  108. {
  109.    if(Arbol!=NULL)
  110.    {
  111.       Postorder(Arbol->izq);
  112.       Postorder(Arbol->der);
  113.       printf(" %d ",Arbol->dato);
  114.    }
  115. }
  116.  
  117.  
  118.  
  119.  
  120.  
RAW Paste Data