Red de conocimientos turísticos - Conocimientos sobre calendario chino - Utilizando una lista binaria enlazada como estructura de almacenamiento, escriba un algoritmo para encontrar la altura y el ancho de un árbol binario.

Utilizando una lista binaria enlazada como estructura de almacenamiento, escriba un algoritmo para encontrar la altura y el ancho de un árbol binario.

La altura del árbol: para un árbol binario no vacío, su profundidad es igual a la profundidad máxima del subárbol izquierdo más 1.

Int Depth(BinTree *T){int dep1, dep2

if(T==Null) return(0);

else{dep1=); Profundidad(T-gt;lchild);

dep2=Profundidad(T-gt;rchild);

if(dep1gt;dep2) return(dep1 1);

else return(dep2 1);}

El ancho del árbol: recorra el árbol binario capa por capa, use una cola q, coloque el nodo raíz en la cola y finalmente salga de la cola.Si hay subárboles izquierdo y derecho, entonces los nodos raíz del subárbol izquierdo y derecho se colocan en la cola y esto se repite hasta que la cola esté vacía.

int Ancho(BinTree *T){intfront=-1, rear=-1

/*Inicialización de cola*/int flag=0, count=0, p;

/* pint CountNode (BTNode *t)?

//Número total de nodos {int num; if (t == NULL)num = 0

elsenum = 1 CountNode (t-gt; lch) CountNode (t-gt; rch);

return (num); }void CountLeaf (BTNode *t)?

/ /leaf Número total de nodos {if (t != NULL){if (t-gt; lch == NULL amp; t-gt; rch == NULL)count ;?

// Variable global CountLeaf (t-gt; lch); CountLeaf (t-gt; rch});

Información ampliada

Método:

El algoritmo para encontrar la altura de un árbol binario se basa en tres recorridos del árbol binario. Puedes utilizar la publicación. -Algoritmo transversal de orden más registrar la altura actual y la altura de la hoja más alta conocida. Cuando se encuentra una hoja más alta que la altura conocida, se actualiza la altura más alta.

El recorrido final es la altura del árbol. En cuanto al algoritmo de recorrido posterior al pedido, se presenta y se hace referencia en un libro sobre estructuras de datos o algoritmos.

>