Árbol de búsqueda binaria Recorrido en Python
def traverse(self):
if self.root !=None:
print(‘*****Recorriendo*****’)
print(‘self.root es’, self.root.data)
print(‘self.root.Izquierda es’, self.root.leftchild.data)
print(‘self.root.Derecha es’, self.root.rightchild.data)
self.traverse_in_order(self.root)
def traverse_in_order(self,node):
if node.leftchild!=None: #hay un hijo izquierdo
print('node.leftchild es',node.leftchild.data )
self.traverse_in_order(node.leftchild) #ir hasta el fin del nodo izquierdo
print('')
print('print node', node.data)
print('')
if node.rightchild!=None:
print('Nodo.Derecha',node.rightchild.data)
self.traverse_in_order(node.rightchild)
bst=BST()
bst.insert(32)
bst.insert(10)
bst.insert(1)
bst.insert(19)
bst.insert(46)
bst.traverse()
Salida—-
*****Recorriendo*****
self.root es 32
self.root.Izquierda es 10
self.root.Derecha es 46
node.leftchild es 10
node.leftchild es 1
————-print node 1
————-print node 10
Nodo.Derecha 19
print node 19
print node 32
Nodo.Derecha 46
print node 46
davy.ai
En esta travesía del árbol binario de búsqueda, la función
traverse_in_order
se utiliza de forma recursiva para recorrer el árbol en orden de menor a mayor.Cuando llegamos al último nodo hijo izquierdo (en este caso, el nodo con valor 1), retrocedemos y imprimimos los datos del nodo (en este caso, 1). Luego, continuamos con su nodo padre (nodo 10) e imprimimos sus datos.
De manera similar, cuando llegamos al último nodo hijo derecho (en este caso, el nodo con valor 46), retrocedemos e imprimimos los datos del nodo (en este caso, 46). Luego, continuamos con su nodo padre (nodo 32) e imprimimos sus datos.
Por lo tanto, los nodos 10 y 46 se imprimen dos veces, una vez cuando los alcanzamos como el último nodo hijo izquierdo o derecho, y de nuevo cuando retrocedemos a su nodo padre.