[Estructura de datos] Explicación detallada del principio del algoritmo de árbol binario + código + preguntas de la entrevista

Estructura de datos y árbol binario de algoritmo

1. Conceptos básicos del árbol binario

1. El concepto de árbol binario

El árbol binario (árbol binario) es un conjunto finito de n nodos. El conjunto es un conjunto vacío (en este caso, un árbol binario se denomina árbol vacío) o consta de un nodo raíz y dos árboles disjuntos llamados nodos raíz. El subárbol izquierdo y el subárbol derecho constan de un árbol binario.
1) Hay uno y solo un nodo específico llamado Raíz.
2) Cuando n> 1, los nodos restantes se pueden dividir en m (m> 0) conjuntos finitos disjuntos, donde cada conjunto es en sí mismo un árbol y se denomina subárbol de la raíz.
Inserte la descripción de la imagen aquí
Hay algunos otros conceptos:
1. Nodo de seguimiento: el nodo superior del árbol.
2. Nodo de rama: un nodo con al menos un nodo hijo.
3. Grado: el número de subárboles que tiene un nodo.
4. Borde: un nodo a otro. la conexión entre los
5, ruta: la secuencia de nodos y bordes que conectan los nodos entre los nodos y su progenie
desde el número de todos los nodos hasta el nodo raíz: 6, número de capas de nodos
profundidad 7, nodo: desde la raíz El número de bordes desde el nodo al nodo
8. La altura del nodo: La altura del nodo es el número de bordes en la ruta más larga que existe entre el nodo y una hoja determinada.
9. La altura del árbol: la altura del nodo raíz.

Inserte la descripción de la imagen aquí

2. La naturaleza del árbol binario:

(1) En un árbol binario, hay como máximo 2 i - 1 2 ^ {i − 1} en la i- ésima capa2i - 1 nodo (i≥1)
(2) Un árbol binario de profundidad k tiene como máximo2 k - 1 2 ^ {k − 1}2k - 1 nodo (k≥1)
(3) Para un árbol binario, si el número de nodos hoja es n0yel número de nodos congrado 2 es n2, entonces n0= n2+1
(4) El La profundidad de un árbol binario completo con n nodos es ⌊log2n⌋ + 1

Inserte la descripción de la imagen aquí

3. Dos estructuras de almacenamiento de árboles binarios

  1. Almacenamiento secuencial

Para un árbol binario completo, se puede utilizar una estructura de almacenamiento secuencial. Sin embargo, para un árbol binario general, existen dos desventajas cuando se usa una estructura de almacenamiento. Primero, si no es un árbol binario completo, debe convertirse en un árbol binario completo. En segundo lugar, agrega muchos nodos virtuales y desperdicios espacio de recursos.

Inserte la descripción de la imagen aquí

  1. Almacenamiento en cadena

Esta es la estructura de almacenamiento de árbol binario más utilizada. Cada nodo establece tres dominios, a saber, el dominio del valor, el dominio del puntero izquierdo y el dominio del puntero derecho. Los datos representan el dominio del valor, y lchild y rchild respectivamente representan los dominios del puntero que apuntan a los subárboles izquierdo y derecho. como muestra la imagen.

Inserte la descripción de la imagen aquí

4. Recorrido del árbol binario

En la operación del árbol binario, el recorrido del árbol binario es la operación básica. Para la operación de recorrido del árbol binario, se divide principalmente en:
recorrido de preorden, recorrido de orden medio, recorrido de posorden y recorrido jerárquico.
De hecho , el recorrido del árbol binario es un proceso recursivo
. La fórmula recursiva del recorrido:
preOrder® = print r-> preOrder (r-> left) -> preOrder (r-> right)
La fórmula recursiva de intermedio orden transversal:
inOrder® = inOrder (r-> izquierda) -> imprimir
La fórmula recursiva de r-> inOrder (r-> derecha) recorrido posterior a la orden:
postOrder® = postOrder (r-> izquierda) -> postOrder (r -> derecha) -> imprimir r

1. Recorrido de pedidos anticipados : acerca de la raíz.
Idea: primero visite la raíz, luego recorra el subárbol izquierdo y luego recorra el subárbol derecho
ABDHIEJCFKG
Inserte la descripción de la imagen aquí

2. Recorrido de orden medio: raíz izquierda derecha.
Idea: primero atraviesa el subárbol izquierdo, luego visita la raíz y finalmente atraviesa el subárbol derecho
HDIBEJAFKCG
Inserte la descripción de la imagen aquí

3. Recorrido posterior al orden: raíces izquierda y derecha
Idea: primero atraviesa el subárbol izquierdo, luego atraviesa el subárbol derecho y finalmente visita la raíz
HIDJEBKFGCA
Inserte la descripción de la imagen aquí

4.
Idea de
cruce de nivel : de arriba a abajo , atraviesa ABCDEFJHIJK de izquierda a derecha
Inserte la descripción de la imagen aquí

Dos, el código del árbol binario

Código de implementación de árbol binario

// An highlighted block

Tres preguntas de la entrevista de árbol binario

1. Encuentra la cantidad de nodos en el árbol binario.

// An highlighted block

2. Encuentra la profundidad (altura) del árbol binario.

// An highlighted block

3. Encuentra el número de nodos hoja en el árbol binario.

// An highlighted block

4. Sabiendo que el recorrido de preorden y el recorrido de orden medio de un árbol binario son ABDEGCFH y DBGEACHF respectivamente, ¿cuál es el recorrido posterior al orden del árbol binario?

Dado que el recorrido de preorden y el recorrido de orden medio de un árbol binario bai son ABDEGCFH y DBGEACHF, respectivamente, el dao de recorrido posterior al orden zhi del árbol binario es DGEBHFCA.

El primer nodo del recorrido de preorden es el nodo raíz. Desde el recorrido de preorden, A es el nodo raíz. Los nodos antes del nodo raíz del recorrido en orden son todos los nodos del subárbol izquierdo, por lo que el nodo del subárbol izquierdo es DBGE. Elimine el nodo raíz y el nodo del subárbol izquierdo, y el nodo del subárbol derecho es CHF. El segundo nodo del recorrido de preorden es B. A partir de 2 sabemos que B es el nodo del subárbol izquierdo, por lo que B es el nodo raíz del subárbol izquierdo.

Está atravesado por preorden, DEG está debajo del nodo B y atravesado por orden medio, D es el nodo izquierdo de B y GE es el nodo derecho de B. Atravesado por preorden, E es el nodo raíz de G, atravesado por orden medio, y G es el nodo hijo izquierdo de E. Atravesado por el preorden, C es el nodo raíz derecho del árbol binario, atravesado por el orden medio, C no contiene el nodo hijo izquierdo y HF es el nodo hijo derecho de C. Atraviesa por preorden, F es el nodo raíz de H, atraviesa por orden medio y H es el nodo hijo izquierdo de F.

En un árbol binario, el recorrido en orden posterior, izquierda y derecha, luego raíz, es decir, primero se recorre el subárbol izquierdo, luego se recorre el subárbol derecho y finalmente se visita el nodo raíz. Entonces, el recorrido posterior al pedido del árbol binario es DGEBHFCA.

Inserte la descripción de la imagen aquí

5. Dado un árbol binario, el orden de nodos del recorrido de preorden es: ABDEGHCFI, el orden de nodos del recorrido de orden medio es: DBGEHAFCI, ¿cuál es el orden del recorrido posterior?

Dado un árbol binario, el orden de nodo del recorrido de preorden es: ABDEGHCFI, el orden de nodo del recorrido de orden medio es: DBGEHAFCI, y el orden del recorrido posterior es: DGHEBFICA

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/m0_37882192/article/details/109228263
Recomendado
Clasificación