2010-10-31 17 views
18

Según Wikipedia,altura de un árbol con sólo un nodo

La altura de un árbol es la longitud del camino desde la raíz hasta el nodo más profundo en el árbol. Un árbol (rooteado) con un solo nodo (la raíz ) tiene una altura de cero (o uno).

No lo consigo - ¿es cero o uno (o ambos)?

+0

La mejor respuesta se puede encontrar en el siguiente enlace: http://stackoverflow.com/questions/2597637/finding-height-in-binary-search-tree – Aksh1801

Respuesta

26

Es solo una asupción que hace para la descripción recursiva de la altura de un árbol binario. Puede considerar un árbol compuesto solo por un nodo, ya sea con 0 de altura o con 1 altura.

Si realmente quiere pensar que de alguna manera se puede pensar que

  • es 0 si se tiene en cuenta la altura como un recuento de flancos (de modo que un solo nodo no tiene ninguna ventaja, por lo tanto, 0)
  • es 1 si se tiene en cuenta la altura como un número de nodos (de modo que un solo cuentas de nodos como 1)

Esto es sólo para describir la cantidad de la altura del árbol más pequeño tiene, a continuación, en cualquier caso, siempre que se añada un nodo descendente agregará también un borde relacionado para que aumente de acuerdo ly.

En el ejemplo proporcionado en Wikipedia:

alt text

Este árbol puede tener altura 4 (nodos) o 3 (bordes). Depende si lo cuenta por aristas o por nodos.

+0

Oh ok, ya veo. Entonces, ¿no hay términos separados para referirse a la altura de los nodos y la altura de los bordes de forma individual? – Snowman

+1

No, no lo hay .. la altura de un árbol se mide como la longitud de la ruta desde la raíz hasta el nodo más profundo. Una ruta está compuesta por bordes y nodos, y específicamente si la ruta tiene _n_ bordes, entonces tiene _n + 1_ nodos (esto debería ser bastante trivial), es por eso que puede tener diferentes casos base: una ruta compuesta por solo un nodo tiene 0 bordes pero 1 nodo. – Jack

3

Depende de la convención. No hay una respuesta "correcta" aquí. Me enseñaron que es 1. Pero cero es igual de correcto.

0

depende de cómo quiera interpretar la altura de un árbol. en algunas aplicaciones, se interpreta que un árbol con un nodo tiene una altura de uno y otros consideran que tiene una altura de cero.

9

Una ventaja de utilizar un recuento de nodos en lugar de un recuento de bordes es que distingue el caso vacío (cero nodos y nivel de nodo) del caso mínimo (un nodo y un nivel de nodo de uno). En algunos casos, un árbol vacío no será significativo, pero en otros casos un intento vacío será perfectamente legítimo.

2

En mi opinión, la altura de un nodo raíz debe ser 0. Tiene sentido práctico ya que 2^height también le proporciona la cantidad de nodos en ese nivel.

+1

Uno podría argumentar lo contrario, sin embargo. Si la altura se define como inclusiva, (2^altura) -1 es el tamaño máximo del árbol para una altura determinada. – supercat

Cuestiones relacionadas