elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


  Mostrar Mensajes
Páginas: [1]
1  Programación / Java / Re: Altura de arbol binario en: 5 Diciembre 2009, 13:08 pm
Hola se que tal vez es un poco tarde y ya te habras dado cuenta pero para futuras personas que vean este mensaje, les comento que el codigo que pones falla para un caso especial. En que el Nodo raiz no tenga ningun Hijo, para lo que el programa que has puesto dara altura 1 y debería ser 0

Les adjunto el codigo correcto en C estandar

#include "nodoarbol.h"
#include <stdlib.h>

// Funcion auxiliar para calculo del maximo
int max(int a,int b){
   if (a<b)
      return b;
   else
      return a;
}

// Funcion solicitada
int alturaMaxima(PNodoArbol raiz){
   if (raiz != NULL){
      // No Contabilizo los nodos Hoja
      if ((raiz->der==NULL) && (raiz->izq==NULL))
         return 0;
      else
      // Cada vez que avanzo por un hijo aumento altura
         return 1 + max(alturaMaxima(raiz->izq),alturaMaxima(raiz->der));
   }else
      return 0;
}

donde "nodoarbol.h" es:

struct NodoArbol {
 int dato; //Almacena el dato
 struct NodoArbol* izq; //Apunta al subarbol izquierdo (valores menores)
 struct NodoArbol* der; //Apunta al subarbol derecho (valores mayores)
};

typedef struct NodoArbol TNodoArbol, *PNodoArbol;

Saludos.
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines