1. Concepto
1. Nodo
- Nodo padre
- Nodo hijo
- Nodos hermanos: nodos del mismo nodo padre
- Nodo raíz: un nodo sin un nodo padre
- Nodos hoja: nodos sin puntos de byte
2 nivel de profundidad
- Altura: cuenta de abajo hacia arriba
- Profundidad: contando de arriba a abajo
- Suelo:
3 Árbol binario completo Árbol binario completo
Árbol binario completo:
- Los nodos de las hojas están todos en la parte inferior;
- A excepción de los nodos hoja, el resto de los nodos contienen dos nodos izquierdo y derecho.
Árbol binario completo: - Excepto por la última capa, el número de nodos en otras capas debe alcanzar el máximo
- Los nodos de hojas de la última capa están todos dispuestos a la izquierda.
4 Recorrido del árbol binario
Nombrado de acuerdo con el orden de los nodos raíz Travesía
de preorden: raíz izquierda y derecha
Travesía de orden medio: raíz izquierda derecha
Travesía de orden posterior: raíz izquierda y derecha
En segundo lugar, la implementación del código
Método de almacenamiento secuencial basado en matrices
Aplicación: árbol binario completo,
método:
suponga que el nodo raíz es el subíndice i en la matriz, e i = 1
el nodo hijo izquierdo del nodo raíz: i * 2
el nodo hijo derecho del nodo raíz: i * 2 + 1
Código principal:
Requisito previo: Los datos de la matriz almacenan los datos de un árbol binario completo
///<summary>
///
///<param name="index"></param>
///</summary>
private void preOrder(int index)
{
if(index>=data.Count||data[index].IsNullOrEmpty()){
return ;
}
int num=index;
Console.write(data[index]+" ");
var leftNum=num*2;
var rightNum=num*2+1;
preOrder(leftNum);
preOrder(rightNum);
}