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.