Tecnología

Inicio

Cómo configurar un árbol binario de búsqueda en Python

Árboles binarios de búsqueda son uno de los tipos abstractos de datos básicos concebidos en la programación de computadoras. A través de un árbol de búsqueda binaria, se puede definir una estructura básica a través de algoritmos de entrada y de búsqueda que facilita la búsqueda y recuperación de información fácil y sistemática. Dado que es un tipo de datos "a la moda", se puede implementar de alguna forma en casi cualquier lenguaje de programación, incluyendo Python. La creación de una clase para representar el árbol, usted puede construir fácilmente un simple árbol de búsqueda binaria.

Instrucciones

1 Crear una clase para representar el árbol. Todo el código va a caer en esta clase y controlar el funcionamiento del árbol:

BinaryTree clase:

2 Definir los datos de árboles en la clase. En esta clase en particular, se define el árbol como una lista de Python. La lista en el árbol binario se inicia con un tamaño inicial de 50:

. . . _tree = [-1] * 50

3 Crear la función de inserción. Esta función utiliza matemáticas simples para determinar los puntos de inserción. Se comprobará cada punto. Si la mancha contiene un número negativo (-1), entonces el lugar está vacío y se insertará. Si no, se va al siguiente punto. La inserción en un árbol binario significa que los valores inferiores se moverán hacia el nodo de "izquierda" (2i + 1, donde "i" es el índice de la lista actual) y los valores mayores se moverán a la "mano derecha" nodo (2i + 2):

. . . def insertar (uno mismo, valor):
. . . index = 0
. . . mientras self._tree [índice]> = 0:
. . . si el valor> self._tree [índice]:
. . . index = (2

índice) + 1
. . . más:
. . . index = (2 índice) + 2
. . . self._tree [índice] = valor

4 Crear una función de búsqueda. La función de búsqueda se comportará de manera similar a la función de inserción, pero sólo se comprobará si el valor existe en el árbol:

. . . Búsqueda def (auto, valor):
. . . index = 0
. . . mientras self._tree [índice]> = 0:
. . . si self._tree valor == [índice]:
. . . devolver True
. . . falso retorno

Consejos y advertencias

  • Esta implementación es solamente un esqueleto básico de un árbol binario. No preformas operaciones más complicadas como la comprobación de límite o eliminación de material.