CLASE ÁRBOL

 

Cada nodo debe contener el campo datos (datos a almacenar) y dos campos punteros esto en la estructura de un árbol binario  como en la figura

Uno al subárbol izquierdo y otro al derecho y esto se conoce como puntero izquierdo y derecho. Un valor a nulo indica un árbol vació.

Algoritmo de la estructura de un árbol:

 

Nodo

     Subárbol izquierdo    <puntero a nodo>

     datos                         <tipodato>

     Subárbol derecho      <puntero a nodo>

Fin nodo

Observar la figura

 

Elipse:    A

 

Se explica mejor en el siguiente dibujo

 

Árbol binario y su estructura en nodos.

 

Representación class árbol (C++)

 

class árbol {

class nodo {

                 char *datos;

nodo *derecho;

     nodo *izquierdo;

     friend class árbol;

};

public:

nodo *raíz<; // cima del árbol (raíz)

árbol (void) {raíz = NULL; } ;

// … otras funciones

};

 

 

 

 

Representación class árbol (C++)

//Árbol binario

template <class T>

class ÁrbolBin;

 

// declara un objeto nodo árbol de un árbol binario

template <class T>

class NodoArbol

{

   private:

 

            // apunta a los hijos izquierdo y derecho del nodo

            NodoArbol <T> *izquierdo;

            NodoArbol <T> *derecho:

 

   public:

            // miembro público, se puede actualizar su valor

            T datos;

 

            // constructor

NodoArbol {const T & item, NodoArbol <T> *ptri=NULL, NodoArbol <T> *ptrd=NULL);

 

// métodos de acceso a los campos puntero

NodoArbol <T> *izquierdo() const;

NodoArbol <T> *derecho() const;

 

// hacer a ArbolBin un amigo ya que necesita acceder a los campos

// puntero izquierdo y derecho del nodo.

friend class ArbolBin <T>;

};

 

La descripción de la clase ArbolBin es como sigue. El constructor inicializa los datos y los campos puntero. El uso del puntero por omisión NULL hace que el nodo se inicialice como un nodo hoja. Con un puntero P de NodoArbol que se pasa como parámetro, el constructor conecta P como hijo izquierdo o derecho del nuevo nodo. Los métodos de acceso Izquierdo y Derecho devuelven el valor correspondiente del puntero. La clase ÁrbolBin se declara como amiga de NodoArbol y puede modificar los punteros.