我需要帮助打印所有没有此基本二叉树的子节点的节点。目前,我有一个搜索特定数字的函数,如果存在则返回True,否则返回False。该代码基本上具有西班牙语的函数和变量名称:hijoDerecha = rightChildren,hijoIzquierda = leftChildren,Nodo = Node,valor = value。
class Nodo:
def __init__(self,valor,hijoDerecha=None, hijoIzquierda=None):
self.valor = valor
self.hijoDerecha = hijoDerecha
self.hijoIzquierda = hijoIzquierda
def AgregaHijo(self,nuevo):
if nuevo.valor < self.valor:
if self.hijoIzquierda is None:
self.hijoIzquierda = nuevo
else:
self.hijoIzquierda.AgregaHijo(nuevo)
else:
if self.hijoDerecha is None:
self.hijoDerecha = nuevo
else:
self.hijoDerecha.AgregaHijo(nuevo)
class BinaryTree:
def __init__(self):
self.raiz = None
def AgregaValor(self,valor):
nuevo = Nodo(valor)
if self.raiz is None:
self.raiz = nuevo
else:
self.raiz.AgregaHijo(nuevo)
def Buscar(self,valor):
#Regresa True si encuentra el valor en el arbol
if valor == self.raiz.valor:
return True
elif valor > self.raiz.valor:
temp = self.raiz.hijoDerecha
while True:
if temp.valor == valor:
return True
if valor > temp.valor:
if temp.hijoDerecha == None:
return False
temp = temp.hijoDerecha
elif valor < temp.valor:
if temp.hijoIzquierda == None:
return False
temp = temp.hijoIzquierda
elif valor < self.raiz.valor:
temp = self.raiz.hijoIzquierda
while True:
if temp.valor == valor:
return True
if valor > temp.valor:
if temp.hijoDerecha == None:
return False
temp = temp.hijoDerecha
elif valor < temp.valor:
if temp.hijoIzquierda == None:
return False
temp = temp.hijoIzquierda
def ImprimeHojas(self):
#Se imprime el valor de todos los nodos que no tienen hijos
pass
def ImprimeEnOrden(self):
#Se imprime el hijo izquierdo, nodo y derecho
pass
def ImprimeEnPreOrden(self):
#Se imprime el nodo, el hijo izquierdo y luego el derecho
pass
def ImprimeEnPostOrden(self):
pass
import random as randy
bt = BinaryTree()
for i in range(100):
bt.AgregaValor(randy.randint(1,100))
print(bt.Buscar(10))
由于随机函数会向二进制树添加随机数,因此预期结果将是随机的。