python实现二叉树的创建和遍历
发布时间:2020-05-25 01:32:10 所属栏目:Python 来源:互联网
导读:python实现二叉树的创建和遍历
|
下面是脚本之家 jb51.cc 通过网络收集整理的代码片段。 脚本之家小编现在分享给大家,也给大家做个参考。 #coding:utf-8
#author:Elvis
class TreeNode(object):
def __init__(self):
self.data = '#'
self.l_child = None
self.r_child = None
class Tree(TreeNode):
#create a tree
def create_tree(self,tree):
data = raw_input('->')
if data == '#':
tree = None
else:
tree.data = data
tree.l_child = TreeNode()
self.create_tree(tree.l_child)
tree.r_child = TreeNode()
self.create_tree(tree.r_child)
#visit a tree node
def visit(self,tree):
#输入#号代表空树
if tree.data is not '#':
print str(tree.data) + 't',#先序遍历
def pre_order(self,tree):
if tree is not None:
self.visit(tree)
self.pre_order(tree.l_child)
self.pre_order(tree.r_child)
#中序遍历
def in_order(self,tree):
if tree is not None:
self.in_order(tree.l_child)
self.visit(tree)
self.in_order(tree.r_child)
#后序遍历
def post_order(self,tree):
if tree is not None:
self.post_order(tree.l_child)
self.post_order(tree.r_child)
self.visit(tree)
t = TreeNode()
tree = Tree()
tree.create_tree(t)
tree.pre_order(t)
print 'n'
tree.in_order(t)
print 'n'
tree.post_order(t)
以上是脚本之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。 如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
