Advertisement
eduardovp97

ex13.c

Nov 14th, 2016
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.07 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. #include "tree.h"
  5.  
  6. #define N 20
  7.  
  8. int estaBalanceado(TNode *node);
  9. int max(int a, int b);
  10. int calcularAltura(TNode *node);
  11.  
  12. int main(){
  13.    
  14.     TTree arbol;
  15.     crearArbol(&arbol);
  16.     insertar(&arbol,15);
  17.     insertar(&arbol,6);
  18.     insertar(&arbol,3);
  19.     insertar(&arbol,1);
  20.     insertar(&arbol,4);
  21.     insertar(&arbol,9);
  22.     insertar(&arbol,7);
  23.     insertar(&arbol,12);
  24.     insertar(&arbol,20);
  25.     insertar(&arbol,18);
  26.     insertar(&arbol,24);
  27.     insertar(&arbol,17);    
  28.  
  29.     printf("%d\n",estaBalanceado(arbol.root));
  30.  
  31.     return 0;
  32. }
  33.  
  34. int estaBalanceado(TNode *node){
  35.     if(node == NULL)
  36.         return 1;
  37.  
  38.     int alt1, alt2;
  39.     alt1 = calcularAltura(node->izq);
  40.     alt2 = calcularAltura(node->der);
  41.     if(abs(alt1-alt2)<=1)
  42.         return estaBalanceado(node->izq) && estaBalanceado(node->der);
  43.     return 0;
  44. }
  45.  
  46. int max(int a, int b){
  47.     if(a>b)
  48.         return a;
  49.     return b;
  50. }
  51.  
  52. int calcularAltura(TNode *node){
  53.     if(node == NULL)
  54.         return 0;
  55.     return 1 + max(calcularAltura(node->izq),calcularAltura(node->der));
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement