我想在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