4 votos

Validez de la prueba del árbol binario completo: Número de hojas $L$ y el número de nodos $N$

Estoy trabajando en las pruebas del árbol binario completo para un artículo del blog que estoy escribiendo y quiero asegurarme de que no me estoy perdiendo nada. Esta prueba en particular se centra en relacionar el número de nodos totales $N$ al número de hojas $L$ . Me resulta más fácil inducir en $L$ y la siguiente es mi prueba:

El número total de nodos $N$ en un árbol binario completo con $L$ hojas es $N = 2L - 1$

Podemos demostrar $N = 2L - 1$ por inducción.

Caso base

Un árbol con $1$ la hoja tiene $1$ nodo en su totalidad. Un árbol con $2$ hojas tiene $3$ nodos en total. El caso base demuestra el teorema para $L = 1$ & $L = 2$ .

Hipótesis inductiva

Supongamos que cualquier árbol binario completo con $L$ hojas tiene $N = 2L - 1$ total de nodos.

Paso inductivo

Demostrar que todo árbol binario completo con $L+1$ hojas tiene $N = 2(L+1) - 1$ total de nodos.

Dejemos que $T$ sea un árbol binario completo con $L+1$ hojas. Seleccione una hoja $v$ a una profundidad máxima tal que $v$ es también una hoja de máxima profundidad. Elimina ambos $v$ y $v$ 's sibling y dejar que $T'$ sea el árbol resultante. $T'$ es un árbol binario completo con $L$ hojas que por nuestra hipótesis inductiva hipótesis debe tener $2L - 1$ total de nodos $N$ . Nota $v$ es ahora una hoja del árbol $T'$ . Añadir $v$ y $v$ a su padre y observe que el padre se convierte en un nodo interno por lo que el árbol pierde una hoja, pero gana otras dos (que hemos añadido). El número de hojas ha aumentado en un total de de $1 \text{ from } L \Rightarrow L+1$ mientras que el número de nodos aumentó en dos $2L - 1 + 2 = 2L + 1$ . Esto equivale claramente a $2(L+1) - 1$ demostrando así por inducción que el número de nodos totales $N$ en cualquier árbol binario árbol binario con $L$ hojas es $2L - 1 \quad \blacksquare$ .

¿Esta prueba es válida o me estoy dejando algo?


Tengo curiosidad, si fuera a inducir en $N$ en lugar de $L$ obviamente tendría que demostrar que un árbol con $N+2$ Los nodos tienen $\frac{(N+1)+2}{2}$ hojas ya que un árbol con $N+1$ no puede ser un árbol binario completo si un árbol con $N$ nodos es un árbol binario completo. ¿Tengo que hacer algo especial para explicar mi paso de $N \Rightarrow N+1$ . La razón por la que un árbol con $N+2$ nodos es un árbol binario completo si un árbol con $N$ nodos es un árbol binario completo es simplemente debido a la definición recursiva de un árbol binario completo, pero no sé cómo más para articular que (o si necesito). ¿Es esto lo que es la inducción estructural?

Edición: Prueba basada en la división

Caso base

Un árbol con $1$ la hoja tiene $1$ nodo en su totalidad. Un árbol con $2$ hojas tiene $3$ nodos en total. El caso base demuestra el teorema para $L = 1$ & $L = 2$ .

Hipótesis inductiva fuerte

Supongamos que cualquier árbol binario completo con $L$ hojas tiene $N = 2L - 1$ total de nodos para todos $0 \leq L \leq K$ .

Paso inductivo

Dejemos que $T$ sea un árbol binario completo con $K+1$ hojas. Al ver cómo $T$ es un árbol binario completo, sus subárboles $T_{left}$ y $T_{right}$ debe tener al menos $1$ hoja cada uno. Esto significa que $T_{left}$ y $T_{right}$ tienen un número de hojas $< K+1$ . Llame a este número $L_{left}$ y $L_{right}$ respectivamente. Por nuestra fuerte IH, deben tener $2(L_{left}) - 1$ y $2(L_{right}) - 1$ total de nodos, respectivamente. $T$ por tanto, tiene un número de nodos igual a la suma del número de nodos de cada subárbol más su raíz, que no aparece en ninguno de los dos subárboles. Como el único nodo que no aparece en ninguno de los dos $T$ es un nodo interno y no una hoja, el número de hojas en $T = L_{left} + L_{right}$ .

$$2(L_{left}) - 1 + 2(L_{right}) - 1 + 1 = 2(L_{left} + L_{right}) - 2 + 1 = 2(K+1) - 1 = 2(L+1) - 1$$

De este modo se demuestra por inducción que todos los árboles binarios completos con $L$ las hojas tienen $N = 2L - 1$ total de nodos para todos $L \quad \blacksquare$ .

2voto

Joffan Puntos 7855

Su prueba parece buena. No es la única manera de probarlo (como siempre) - quizás encontraría la opción de dividir en el nodo raíz un enfoque más natural para un árbol binario.

No creo que la inducción en $N$ sería fácil de enmarcar o justificar. Ciertamente, cuando se trata de probar algo en lo que el hecho dado es sobre $L$ y el resultado es de $N$ tendrías que hacer algún trabajo para darle la vuelta.

1 votos

Sí, el desdoblamiento sería probablemente más natural. Pero si te dieran $L$ como un hecho y el resultado sobre $N$ ¿No podrías darle la vuelta y decir $N = 2L - 1$ sólo es cierto si $L = \frac{N+1}{2}$ es verdadera, entonces induce sobre N y demuestra la segunda ecuación? O esto no es válido...

0 votos

Posiblemente, pero dado que tenemos el enfoque bastante natural que utilizaste (y la alternativa de una división en árbol) dudo que se "sienta" bien tratar de invertir en la prueba de esa manera.

0 votos

¿Podrías echar un vistazo a la segunda prueba que he añadido basada en la división?

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X