Explicación detallada del árbol binario - Versión en lenguaje C [estructura de datos]

Tabla de contenido

editar

1. Concepto y estructura del árbol

1.1 El concepto de árbol

1.2 Conceptos relacionados de árboles

1.3 Representación del árbol

2. Concepto y estructura del árbol binario 

 2.1 Concepto

2.2 Árboles binarios especiales

2.3 Propiedades de los árboles binarios 

2.4 Ejercicios simples de árboles binarios 

2.5 Estructura de almacenamiento del árbol binario

2.5.1 Almacenamiento secuencial - Montón

2.5.2 Almacenamiento en cadena


1. Concepto y estructura del árbol

1.1 El concepto de árbol

Un árbol es una estructura de datos no lineal , que es un conjunto de relaciones jerárquicas compuesto por n (n>=0) nodos finitos. Se llama árbol porque parece un árbol al revés, lo que significa que tiene las raíces hacia arriba y las hojas hacia abajo.

Reponer: 

Hay un nodo especial llamado nodo raíz, y el nodo raíz no tiene nodos predecesores. Excepto el nodo raíz, los otros nodos se dividen en M (M>0) conjuntos disjuntos T1, T2, ..., Tm, cada conjunto Ti (1<= i <= m) es una estructura y subárboles en forma de árbol. El nodo raíz de cada subárbol tiene un único predecesor y puede tener cero o más sucesores. Por lo tanto, el árbol se define recursivamente.


 1.2 Conceptos relacionados de árboles


Cálido recordatorio: ¡los puntos clave de aprendizaje marcados en rojo! ! !

Grado de nodo: El número de subárboles contenidos en un nodo se denomina grado del nodo, como se muestra en la figura anterior: A es 6

Nodo hoja o nodo terminal: un nodo con un grado de 0 se llama nodo hoja, como se muestra en la figura anterior: B, C, H, I... y otros nodos son nodos hoja

Nodos no terminales o nodos ramificados: nodos cuyo grado no es 0; como se muestra en la figura anterior: nodos como D, E, F, G... son nodos ramificados

Nodo principal o nodo principal: si un nodo contiene nodos secundarios, este nodo se denomina nodo principal de sus nodos secundarios; como se muestra arriba: A es el nodo principal de B

Nodo secundario o nodo secundario: el nodo raíz del subárbol contenido en un nodo se denomina nodo secundario del nodo; como se muestra arriba: B es el nodo secundario de A

Nodos hermanos: los nodos con el mismo nodo padre se denominan nodos hermanos (hermanos); como se muestra arriba: B y C son nodos hermanos

Grado del árbol: En un árbol, el grado del nodo más grande se llama grado del árbol; como se muestra arriba: el grado del árbol es 6

Altura o profundidad del árbol: el nivel máximo de nodos en el árbol; como se muestra arriba: la altura del árbol es 4

Nodos primos: los nodos cuyos padres están en la misma capa son primos; como se muestra en la figura anterior: H e I son nodos hermanos

Antepasados ​​de un nodo: todos los nodos en la rama desde la raíz hasta el nodo; como se muestra en la figura anterior: A es el antepasado de todos los nodos

Descendientes: cualquier nodo en el subárbol con raíz en un nodo se denomina descendiente del nodo. Como se muestra arriba: todos los nodos son descendientes de A

Bosque: Una colección de m (m>0) árboles disjuntos se llama bosque; (la colección fusionada que se aprende más adelante es un bosque)

Debemos entender estos conceptos, porque preguntaremos cómo encontrarlos más adelante en las preguntas. Por ejemplo: encontrar la profundidad de un árbol binario


1.3 Representación del árbol

La estructura de árbol es más complicada que la tabla lineal, y es más difícil de almacenar y expresar. Dado que se guarda el rango de valores, también se guarda la relación entre nodos y nodos. En la práctica, hay muchas formas de representar árboles, como como: representación de padres, representación de niños, representación de padres de niños y representación de hermanos de niños. Aquí simplemente entendemos la notación de hermano menor más utilizada.


representación de código 

 Dibujo representación



2. Concepto y estructura del árbol binario 

 2.1 Concepto

Un árbol binario es un conjunto finito de nodos:

1. o vacío

2. Consta de un nodo raíz más dos árboles binarios llamados subárbol izquierdo y subárbol derecho

¡Imagen aquí! ! !


 Como se puede ver en la figura anterior:

   1. No hay ningún nodo con grado mayor a 2 en el árbol binario

    2. Los subárboles del árbol binario se dividen en izquierda y derecha, y el orden no se puede invertir, por lo que el árbol binario es un árbol ordenado.


2.2 Árboles binarios especiales

      Introducción al árbol binario completo y al árbol binario completo


2.3 Propiedades de los árboles binarios 


2.4 Ejercicios simples de árboles binarios 

2.4.1

 Solución de 3 segundos usando propiedades

2.4.2

Observamos este árbol binario completo y podemos concluir que hay como máximo tres grados en el árbol binario, y los grados son 0, 1 y 2. Y un grado de 1 solo puede tener dos valores 0 o 1

En este momento, podemos usar la propiedad 3 para representar n2 con n0, de modo que podamos calcular la cantidad de nodos hoja (es decir, la cantidad de nodos con grado 0)


 2.4.3

¿Cuál es el rango de nodos de un árbol binario completo de altura h?

Valor mínimo: cuando solo hay un nodo en la capa h (por qué hay un nodo, porque el título se trata de un árbol binario completo, si no hay un nodo en la capa h, es un árbol binario completo en el h- 1 capa)


2.4.4



2.5 Estructura de almacenamiento del árbol binario

Los árboles binarios generalmente se pueden almacenar usando dos estructuras, una estructura secuencial y una estructura de cadena.

2.5.1 Almacenamiento secuencial - Montón

El almacenamiento de estructura secuencial consiste en usar arreglos para el almacenamiento. Generalmente, los arreglos solo son adecuados para representar árboles binarios completos, porque los árboles binarios no completos desperdiciarán espacio. En realidad, solo el montón se almacenará en una matriz, y explicaremos específicamente el montón en los siguientes capítulos. El almacenamiento secuencial de árbol binario es físicamente una matriz y lógicamente un árbol binario. 

Diagrama de lógica de almacenamiento secuencial

La estructura de almacenamiento secuencial solo se aplica a árboles binarios completos y árboles binarios completos. Se almacena en una matriz y se puede calcular la relación de subíndice entre padre e hijo.


 Si no es un árbol binario completo y un árbol binario completo, surgirán los siguientes problemas, hay un desperdicio de espacio (no adecuado) , la siguiente estructura de almacenamiento en cadena es más adecuada para este tipo de árbol binario


2.5.2 Almacenamiento en cadena

La estructura de almacenamiento enlazada del árbol binario significa que se utiliza una lista enlazada para representar un árbol binario, es decir, se utiliza un enlace para indicar la relación lógica de los elementos. El método habitual es que cada nodo en la lista enlazada se compone de tres campos, el campo de datos y los campos de puntero izquierdo y derecho, y los punteros izquierdo y derecho se utilizan para dar las direcciones de almacenamiento de los puntos de enlace donde el hijo izquierdo y hijo derecho del nodo se encuentran. La estructura de la cadena se divide además en cadenas binarias y cadenas triples. En la actualidad, generalmente usamos cadenas binarias en nuestros estudios. Los cursos posteriores aprenderán estructuras de datos de alto nivel, como árboles rojo-negro, que usarán cadenas triples .

Cadena de dos horquillas y cadena de tres horquillas



El almacenamiento secuencial del árbol binario (montón) y el almacenamiento encadenado en este artículo presentarán brevemente el concepto primero, y el siguiente contenido se explicará más adelante: el
concepto y la estructura del montón, la implementación del montón, la clasificación del montón y TOP- k problemas

Implementación de estructura de cadena de árbol binario

Si cree que el artículo es bueno, espero su enlace triple de un clic. Su aliento es la fuente de motivación para mi creación. ¡Trabajemos juntos y nos vemos en la cima! ! !

Supongo que te gusta

Origin blog.csdn.net/qq_58286439/article/details/130536352
Recomendado
Clasificación