您的位置:首页 > 理论基础 > 数据结构算法

python数据结构--二叉树建立与遍历

2013-05-09 23:18 597 查看
二叉树的实现为非递归实现,遍历方法就写了一个,traversal(self, root), 其实先序遍历、中序遍历和后序遍历的区别就一个,代码注释里有,就是 print root.data, 这句代码的位置的区别,非常简单。

完整代码:

#!/usr/bin/python
# Filename: BTree.py

class BTNode:
def __init__(self, data, left, right):
self.data = data
self.left = left
self.right = right

class BTree:
def __init__(self):
self.root = None

def insert(self, data):
r = self.root
if r == None:
self.root = BTNode(data, None, None)
return
while True:
if r.data > data:
if r.left == None:
r.left = BTNode(data, None, None)
break
else:
r = r.left
else:
if r.right == None:
r.right = BTNode(data, None, None)
break
else:
r = r.right

def traversal(self, root):
if root == None:
return
else:
print root.data,		#preOrder
self.traversal(root.left)
#print root.data,		#midOrder
self.traversal(root.right)
#print root.data,		#aftOrder

if __name__ == '__main__':

bt = BTree()
bt.insert(10)
bt.insert(3)
bt.insert(12)
bt.insert(6)
bt.insert(30)
bt.insert(16)
bt.insert(1)
bt.insert(5)

print 'Previous Order:'
#	print 'Midddle Order:'
#	print 'After Order:'
bt.traversal(bt.root)


运行结果(通过修改 traversal 方法中 print 的位置, 分别得到先序、中序、后序遍历):

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐