[英]Printing binary search tree nodes using inorder traversal (recursion) in Python
我正在尝试在二进制搜索树上实现一种简单的有序遍历方法。
10
/ \
5 15
\
8
我想打印整个树,但是我只打印了前3个节点。 我的问题是:
-如何解决“有序”打印方法? '插入'方法工作正常。 -排序方法的基本条件是什么? 当所有节点都打印完后,如何知道要停止?
class Tree:
def __init__(self, value):
self.node = value
self.leftChild = None
self.rightChild = None
def insert(self, value):
if self.node is None:
self.node = value
return True
if self.node is not value:
if self.node > value:
if self.leftChild is None:
self.leftChild = Tree(value)
else:
return self.leftChild.insert(value)
if self.node < value:
if self.rightChild is None:
self.rightChild = Tree(value)
else:
return self.rightChild.insert(value)
else:
return False
def inorder(self):
if self:
if self.leftChild:
return self.leftChild.inorder()
print self.node
if self.rightChild:
return self.rightChild.inorder()
tree = Tree(10)
tree.insert(5)
tree.insert(8)
tree.insert(15)
tree.inorder()
> 5
8
10
return
in return self.leftChild.inorder()
在可以处理self
和self.rightChild
之前结束对inorder
的调用。 删除return
,该方法始终不返回任何内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.