Advertisement
davidcastrosalinas

20201124 Árboles Binarios Parte 1

Nov 24th, 2020
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.17 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. struct Nodo {
  6.     int info; //key value
  7.     struct Nodo* izq;
  8.     struct Nodo* der;
  9. };
  10. typedef Nodo* AB;
  11.  
  12.  
  13.  
  14. //mostrando toda la izq y luego la derecha
  15. void recorrerAB(AB t){
  16.     if(t == NULL)
  17.         return;
  18.     cout <<"info:" << t->info<<endl;
  19.     recorrerAB(t->izq);
  20.     recorrerAB(t->der);
  21. }
  22.  
  23. //cómo puedo saber la cantidad de nodos que tiene el árbol?
  24. int contarNodos(AB t){
  25.     if(t == NULL)
  26.         return 0;
  27.  
  28.     return 1 + contarNodos(t->izq) + contarNodos(t->der);
  29. }
  30.  
  31. //como saber la cantidad de hojas?
  32. //hoja= sus dos hijos =  null
  33. int contarHojas(AB t){
  34.     if(t == NULL)
  35.         return 0;
  36.  
  37.     if(t->izq == NULL and t->der == NULL) //punto final
  38.         return 1;
  39.  
  40.     return contarHojas(t->izq) + contarHojas(t->der);
  41. }
  42.  
  43.  
  44. //Arboles binarios de búsqueda
  45. //menores a la izquierda y mayores a la derecha
  46. void insertarABB(AB &t, int info){
  47.     //crear un nodo
  48.     if(t == NULL){
  49.         AB nuevo = new Nodo();
  50.         nuevo->info = info;
  51.         nuevo->izq = NULL;
  52.         nuevo->der = NULL;
  53.         t = nuevo;
  54.     } else {
  55.         if(info < t->info)
  56.             insertarABB(t->izq, info);
  57.         else
  58.             insertarABB(t->der, info);
  59.     }
  60. }
  61.  
  62. //conocer el mayor
  63.  
  64.  
  65.  
  66. int main()
  67. {
  68.     AB raiz = NULL;
  69.  
  70. /*    AB uno = new Nodo();
  71.     uno->info = 9;
  72.     uno->izq = NULL;
  73.     uno->der = NULL;
  74.  
  75.     AB dos = new Nodo();
  76.     dos->info=3;
  77.     dos->izq = NULL;
  78.     dos->der = NULL;
  79.  
  80.     AB tres = new Nodo();
  81.     tres->info=2;
  82.     tres->izq = NULL;
  83.     tres->der = NULL;
  84.  
  85.     AB cuatro = new Nodo();
  86.     cuatro->info=10;
  87.     cuatro->izq = NULL;
  88.     cuatro->der = NULL;
  89.  
  90.     raiz = uno;
  91.     uno->izq = dos;
  92.     dos->der = tres;
  93.     tres->izq = cuatro;
  94.  
  95.     recorrerAB(raiz);*/
  96.  
  97.  
  98.     insertarABB(raiz, 10);
  99.     insertarABB(raiz, 5);
  100.     insertarABB(raiz, 15);
  101.     insertarABB(raiz, 3);
  102.     insertarABB(raiz, 7);
  103.     insertarABB(raiz, 14);
  104.     insertarABB(raiz, 18);
  105.     recorrerAB(raiz);
  106.  
  107.     cout <<"cantidad de nodos:" <<contarNodos(raiz)<<endl;
  108.     cout <<"cantidad de hojas:" <<contarHojas(raiz)<<endl;
  109.  
  110.     cout << "Hello world!" << endl;
  111.     return 0;
  112. }
  113.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement