我想在Python中实现二叉搜索树操作。截至目前,我已经编写了一些代码来添加节点到这个搜索树(排序)。 这是我在我的代码已经:二叉搜索树操作
class TreeNode:
def __init__(self, data):
self.data = data
self.lLink = None
self.rLink = None
class BinaryTree:
def __init__(self):
self.root = None
def AddNode(self, data):
if self.root is None:
self.root = TreeNode(data)
else:
if data < self.root.data:
if self.root.lLink is None:
self.root.lLink = TreeNode(data)
else:
AddNode(self.root.lLink, data)
else:
if self.root.rLink is None:
self.root.rLink = TreeNode(data)
else:
AddNode(self.root.rLink, data)
def InOrder(self, head):
if self.root.lLink is not None:
InOrder(self.root.lLink)
print self.root.data,
if self.root.rLink is not None:
InOrder(self.root.rLink)
myTree = BinaryTree()
myTree.AddNode(15)
myTree.AddNode(18)
myTree.AddNode(14)
如何测试,如果我的AddNode()
方法是正确的?我知道算法,但只是为了确保。 我在想的是创建一个InOrder()方法,并尝试通过这个InOrder遍历来打印元素。因此,添加到树中的数据应按排序顺序显示。如果以排序顺序显示,我将确定我的AddNode()和InOrder()方法都是正确的。
你wan't序()从极左到极右打印数据?为什么InOrder()需要一个头参数...那是什么意思? – pypat
这正是你应该如何测试插入功能。所以,你没有你的答案?你还想知道什么? – SiddharthaRT
哦,等等,InOrder根本不起作用。发布变更。 – SiddharthaRT