[Fronteras del árbol binario] Árbol


inserte la descripción de la imagen aquí


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.

inserte la descripción de la imagen aquí

  • 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.
     
    inserte la descripción de la imagen aquí

2. Conceptos relacionados de árboles

inserte la descripción de la imagen aquí

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; // 结点中的数据域
};

inserte la descripción de la imagen aquí


4. El uso práctico de los árboles (que representan la estructura de árbol de directorios del sistema de archivos)

inserte la descripción de la imagen aquí

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.


inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/Zhenyu_Coder/article/details/132384104
Recomendado
Clasificación