Algoritmo de Python algoritmo de primer recorrido transversal en serie [árbol binario]

Inserte la descripción de la imagen aquí
这不就是二叉树吗?嗯,风景都在提示我该学学二叉树了

1. ¿Qué es el recorrido de profundidad primero?

El algoritmo transversal de profundidad primero es un algoritmo clásico de teoría de grafos. Comience a buscar desde un determinado nodo v. Continúe buscando hasta que se hayan atravesado todos los bordes del nodo. Cuando se hayan atravesado todos los bordes del nodo v, el algoritmo transversal primero debe volver al nodo predecesor v para continuar buscando este nodo.
Nota : El problema transversal de profundidad primero debe probar todos los métodos posibles de acuerdo con las reglas.

Dos, árbol binario

1. Introducción al árbol binario

El árbol binario es una estructura de datos especial Las estructuras de datos comunes incluyen matrices, listas vinculadas, gráficos, colas, tablas hash y árboles. El árbol binario pertenece a la estructura de árbol. Cada nodo en el árbol binario tiene dos ramas llamadas subárbol izquierdo y subárbol derecho. Cada nivel del árbol binario tiene como máximo ( 2 norte - 1 ) (2 ^ n - 1) nodos. A diferencia de los árboles ordinarios, los nodos de los árboles ordinarios no tienen restricciones de rama, y ​​los nodos de los árboles ordinarios no se dividen entre izquierda y derecha y subárboles.

2. Tipo de árbol binario

Tipos de árboles binarios: árbol binario vacío, árbol binario completo, árbol binario completo, árbol binario perfecto, árbol binario equilibrado.

  • Árbol binario vacío : hay cero nodos
  • Árbol binario perfecto : cada capa de nodos está llena de árboles binarios (como el ejemplo de la Figura 1)
  • Árbol binario completo : cada nodo tiene cero o dos nodos secundarios
  • Árbol binario completo : más allá de la última capa, los nodos de cada capa están llenos, y los nodos de la última capa están todos dispuestos desde la izquierda
  • Árbol binario equilibrado : la profundidad de los dos subárboles de cada nodo no difiere en más de 1.
    Inserte la descripción de la imagen aquí
    Inserte la descripción de la imagen aquí
    Nota : La definición de árbol binario perfecto y árbol binario completo es la misma en China
3. Términos relacionados con el árbol binario
Terminología Explicar
Grado El grado de un nodo es el número de subárboles del nodo.
Nodo de la hoja Nodo con cero grados
Nodo de rama Nodos con grados distintos de cero
Nodo hijo Dos nodos secundarios debajo del nodo
Nodo principal El nodo de origen un nivel por encima del nodo
Nodo hermano Nodos con el mismo nodo padre
Raíz Nodo fuente del árbol binario
Profundidad El número de capas de nodos en el árbol binario.
4. Código de nodo del árbol binario

Debido a que cada nodo tiene dos nodos secundarios conectados, solo necesitamos tener el nodo raíz para encontrar cualquier nodo en el árbol binario, y cada nodo tiene la misma definición

class Node : #二叉树节点定义
	def  _init_(self,x):
		self.val = x #节点值
		self.left = None #左侧子节点
		self.right = None #右侧子节点

5. Orden transversal del árbol binario

Tres formas transversales de árbol binario:

  • DLR (primer orden):
  • LDR (orden intermedia):
  • LRD (orden posterior):
    Nota : L representa el subárbol izquierdo R representa el subárbol derecho; D representa la raíz
    Inserte la descripción de la imagen aquí
6. Profundidad de primer recorrido y amplitud de primer recorrido
  • El primer recorrido en profundidad : el orden previo, el orden medio y el orden posterior son todos un recorrido en profundidad
    desde el nodo raíz hasta el nodo más lejano,
  • Recorrido de amplitud primero : primero visite el nodo más cercano del nodo raíz del ejemplo y avance en capas. El orden de atravesar la imagen de arriba en amplitud es: 1-2-3-4-5-6-7

3. Preguntas de la entrevista + inspiración

Preguntas de la entrevista de Penguin O&M :
1. Secuencia transversal del árbol binario: ver arriba
2. ¿Dime cómo crear un árbol binario en un idioma con el que estés familiarizado? pitón ver arriba
Estudia mucho para ponerte al día

85 artículos originales publicados · 709 elogiados · 70,000 visitas

Supongo que te gusta

Origin blog.csdn.net/weixin_42767604/article/details/105508993
Recomendado
Clasificación