[Fronteras del árbol binario] Árbol
1 El concepto de un á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.。
- Los árboles tienen un nodo especial llamadonodo raíz,El nodo raíz no tiene predecesores.。
- Excepto el nodo raíz, los otros nodos se dividen en M (M>0) conjuntos disjuntos T1, T2, ..., Tm, cada uno de los cuales 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 0 o más sucesores..
Consejos: En la estructura de árbol, no puede haber intersección entre subárboles, de lo contrario, no es una estructura de árbol.
2. Conceptos relacionados de árboles
① 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 de hoja o nodo terminal : un nodo con un grado de 0 se llama nodo de hoja, como se muestra en la figura anterior: los nodos como B, C, H, I, etc., son nodos de hoja ③Nodo no terminal o nodo
de rama : un nodo con un grado distinto de 0, como se muestra en la figura anterior: Los nodos como D, E, F, G... son nodos de rama.
④Nodo principal o nodo principal : si un nodo contiene nodos secundarios, este nodo se denomina nodo principal de sus nodos secundarios; como se muestra en la figura anterior: A es el nodo principal de B.
⑤Nodo hijo o nodo hijo : el nodo raíz del subárbol contenido en un nodo se denomina nodo hijo del nodo; como se muestra en la figura anterior: B es el nodo hijo de A. ⑥Nodos
hermanos : los nodos con el mismo nodo principal se denominan nodos hermanos; como se muestra en la figura anterior: B y C son nodos hermanos ⑦Grado del árbol: en un árbol, el grado del nodo más grande se denomina grado del árbol; como se muestra en la figura de arriba: árbol El grado es 6. ⑧La jerarquía de los nodos : a partir de la definición de la raíz, la raíz es la primera capa, los nodos secundarios de la raíz son la segunda capa, y así sucesivamente. ⑨Altura o profundidad del árbol : el nivel máximo de nodos en el árbol; como se muestra en la figura anterior: 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 del nodo
: Todos los nodos en la rama desde la raíz hasta este nodo; como se muestra en la figura anterior: A es el ancestro 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 ;
3. Representación del árbol
La estructura de árbol es más complicada que la tabla lineal y es más problemática de almacenar y expresar.Como 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: 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 lo entendemos.La notación de hermanos de niños más utilizada。
Código:
typedef int DataType;
struct Node
{
struct Node* _firstChild1; // 第一个孩子结点
struct Node* _pNextBrother; // 指向其下一个兄弟结点
DataType _data; // 结点中的数据域
};
4. El uso práctico de los árboles (que representan la estructura de árbol de directorios del sistema de archivos)
En lo anterior, primero busque el primer contenedor secundario en la segunda fila, y bin encuentra otros nodos hermanos en la segunda fila a través de los nodos hermanos.
Y debido a que el puntero secundario del primer nodo en la línea 2 está vacío, el final ya no visita hacia abajo.
A continuación, el segundo nodo de la segunda fila encuentra el primer nodo de la tercera fila a través del puntero secundario y luego encuentra otros nodos hermanos a través de los nodos hermanos.
Otros nodos continúan repitiendo el proceso anterior y finalmente encuentran todos los datos.