Estoy confundido acerca de la terminología de los árboles de abajo, he estado estudiando el Árbol y no puedo distinguir entre estos árboles:
a) Árbol binario completo
b) Árbol binario estricto
c) Árbol binario completo
Ayúdame a diferenciar entre estos árboles. ¿Cuándo y dónde se utilizan estos árboles en la estructura de datos?
data-structures
tree
binary-tree
kTiwari
fuente
fuente
Respuestas:
Wikipedia cedió
Un árbol binario completo (a veces un árbol binario adecuado o un árbol de dos o un árbol estrictamente binario) es un árbol en el que cada nodo, excepto las hojas, tiene dos hijos.
Entonces no tiene nodos con solo 1 hijo. Parece ser lo mismo que un árbol binario estricto.
Aquí hay una imagen de un árbol binario completo / estricto, de Google:
Un árbol binario completo es un árbol binario en el que todos los niveles, excepto posiblemente el último, están completamente llenos y todos los nodos están lo más a la izquierda posible.
Parece significar un árbol equilibrado.
Aquí hay una imagen de un árbol binario completo, de Google, la parte completa del árbol de la imagen es una bonificación.
fuente
Árbol perfecto:
Árbol completo:
Árbol estricto / completo:
fuente
Hay una diferencia entre un ÁRBOL BINARIO ESTRICTO y COMPLETO.
1) ÁRBOL BINARIO COMPLETO: Un árbol binario de altura h que contiene exactamente (2 ^ h) -1 elementos se llama árbol binario completo . (Ref: Pg 427, Estructuras de datos, algoritmos y aplicaciones en C ++ [University Press], segunda edición de Sartaj Sahni).
o en otras palabras
En un ÁRBOL BINARIO COMPLETO cada nodo tiene exactamente 0 o 2 hijos y todos los nodos hoja están en el mismo nivel.
Por ejemplo: El siguiente es un ÁRBOL BINARIO COMPLETO:
2) ÁRBOL BINARIO ESTRICTO: Cada nodo tiene exactamente 0 o 2 hijos.
Por ejemplo: El siguiente es un ÁRBOL BINARIO ESTRICTO:
Creo que no hay confusión en la definición de un árbol binario completo, aún para la integridad de la publicación, me gustaría decir qué es un árbol binario completo.
3) ÁRBOL BINARIO COMPLETO: Un árbol binario es un árbol binario completo si todos los niveles están completamente llenos excepto posiblemente el último nivel y el último nivel tiene todas las claves a la izquierda como sea posible.
Por ejemplo: El siguiente es un ÁRBOL BINARIO COMPLETO:
Nota: Lo siguiente también es un árbol binario completo:
fuente
Descargo de responsabilidad- : la fuente principal de algunas definiciones es wikipedia, cualquier sugerencia para mejorar mi respuesta es bienvenida.
Aunque esta publicación tiene una respuesta aceptada y es buena, todavía estaba confundido y me gustaría agregar algunas aclaraciones más sobre la diferencia entre estos términos.
(1) ÁRBOL BINARIO COMPLETO: un árbol binario completo es un árbol binario en el que todos los nodos, además de las hojas, tienen dos hijos. También se denomina árbol estrictamente binario .
Los dos anteriores son ejemplos de árbol completo o estrictamente binario.
(2) ÁRBOL BINARIO COMPLETO - Ahora, la definición de árbol binario completo es bastante ambigua, dice: - Un árbol binario completo es un árbol binario en el que cada nivel, excepto posiblemente el último , está completamente lleno, y todos los nodos son como lo más a la izquierda posible. Puede tener entre 1 y 2h nodos, lo más a la izquierda posible, en el último nivel h
Observe las líneas en cursiva.
La ambigüedad radica en las líneas en cursiva, "excepto posiblemente el último", lo que significa que el último nivel también puede estar completamente lleno, es decir, esta excepción no siempre debe cumplirse. Si la excepción no se cumple, es exactamente como la segunda imagen que publiqué, que también se puede llamar árbol binario perfecto . Por lo tanto, un árbol binario perfecto también está completo y completo, pero no al revés, lo que quedará claro con una definición más que debo indicar:
ÁRBOL BINARIO CASI COMPLETO: cuando se cumple la excepción en la definición de árbol binario completo, se le llama árbol binario casi completo o árbol binario casi completo. Es solo un tipo de árbol binario completo en sí mismo, pero es necesaria una definición separada para hacerlo más inequívoco.
Entonces, un árbol binario casi completo se verá así, puede ver en la imagen que los nodos están lo más a la izquierda posible, por lo que es más como un subconjunto del árbol binario completo, para decir más rigurosamente, cada árbol binario casi completo es un binario completo. árbol pero no al revés. :
fuente
Concluyendo de las respuestas anteriores, aquí está la diferencia exacta entre árboles binarios completos / estrictamente, completos y perfectos
Árbol completo / estrictamente binario : - Todos los nodos excepto los nodos hoja tienen dos hijos
Árbol binario completo : - Todos los niveles, excepto el último, están completamente llenos y todos los nodos están justificados a la izquierda.
Árbol binario perfecto : - Todos los nodos, excepto los nodos hoja, tienen dos hijos y cada nivel (también el último nivel) está completamente lleno.
fuente
Considere un árbol binario cuyos nodos se dibujan en forma de árbol. Ahora comience a numerar los nodos de arriba a abajo y de izquierda a derecha. Un árbol completo tiene estas propiedades:
Si n tiene hijos, entonces todos los nodos numerados con menos de n tienen dos hijos.
Si n tiene un hijo, debe ser el hijo izquierdo y todos los nodos menores de n tienen dos hijos. Además, ningún nodo con un número mayor que n tiene hijos.
Si n no tiene hijos, ningún nodo con un número mayor que n tiene hijos.
Se puede utilizar un árbol binario completo para representar un montón. Se puede representar fácilmente en la memoria contigua sin espacios (es decir, se utilizan todos los elementos de la matriz, salvo el espacio que pueda existir al final).
fuente
El árbol binario completo es un árbol binario completo pero no es posible revertirlo, y si la profundidad del binario es n el no. de nodos en el árbol binario completo es (2 ^ n-1). No es necesario que en el árbol binario tenga dos hijos, pero en el binario completo cada nodo no tiene ni dos hijos.
fuente
Para comenzar con lo básico, es muy importante comprender el árbol binario en sí mismo para comprender los diferentes tipos de él.
Un árbol es un árbol binario si y solo si: -
- Tiene un nodo raíz, que puede no tener nodos secundarios (0 childnodes, árbol NULL)
–El nodo raíz puede tener 1 o 2 nodos secundarios. Cada uno de estos nodos forma un árbol abinario.
–La cantidad de nodos secundarios puede ser 0, 1, 2 ....... no más de 2
–Hay una ruta única desde la raíz a todos los demás nodos
Ejemplo:
Llegando a sus terminologías solicitadas:
Un árbol binario es un árbol binario completo (de altura h, tomamos el nodo raíz como 0) si y solo si: -
Los niveles 0 a h-1 representan un árbol binario completo de altura h-1
- Uno o más nodos en el nivel h-1 pueden tener 0 o 1 nodos secundarios
Si j, k son nodos en el nivel h-1, entonces j tiene más nodos hijos que k si y solo si j está a la izquierda de k, es decir, al último nivel (h) pueden faltar nodos hoja, sin embargo, los presentes deben ser movido a la izquierda
Ejemplo:
Un árbol binario es un árbol estrictamente binario si y solo si: -
Cada nodo tiene exactamente dos nodos secundarios o ningún nodo
Ejemplo:
Un árbol binario es un árbol binario completo si y solo si: -
Cada nodo no hoja tiene exactamente dos nodos secundarios
Todos los nodos hoja están al mismo nivel
Ejemplo:
También deberías saber qué es un árbol binario perfecto.
Un árbol binario es un árbol binario perfecto si y solo si: -
- es un árbol binario completo
- Todos los nodos hoja están al mismo nivel
Ejemplo:
Bueno, lamento no poder publicar imágenes porque no tengo 10 reputación. ¡Espero que esto te ayude a ti y a otros!
fuente
En mi experiencia limitada con el árbol binario, creo:
fuente
Consideremos un árbol binario de altura 'h'. Un árbol binario se llama árbol binario completo si todas las hojas están presentes a la altura 'h' o 'h-1' sin ningún número faltante en la secuencia.
Es un árbol binario completo.
No es un árbol binario completo ya que falta el nodo del número 5 en la secuencia.
fuente
El árbol binario completo está lleno si cada nodo tiene 0 o 2 hijos. en binario completo, el número de nodos hoja es el número de nodos internos más 1 L = l + 1
fuente
Árbol binario completo: todos los niveles están completamente llenos, excepto el nivel más bajo y una cosa principal, todos los elementos de la hoja deben haber dejado al niño. Árbol binario estricto: en este árbol, todos los nodos que no son hojas no tienen hijos, es decir, ni a la izquierda ni a la derecha. Árbol binario completo: cada nodo tiene cero hijos o dos hijos (nunca tener un solo hijo).
fuente