加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > C语言 > 正文

Python 语言实现的二叉树结构和三种遍历

发布时间:2020-12-15 00:35:04 所属栏目:C语言 来源:网络整理
导读:class TreeNode(object): def __init__(self,left,right,data): self.left = left self.right = right self.data = data class BTree(object): def init (self,root): self.root = root # 判空def is_empty(self): if self.root is None: return True return
class TreeNode(object):
    def __init__(self,left,right,data):
        self.left = left
        self.right = right
        self.data = data

class BTree(object):
def init(self,root):
self.root = root

# 判空
def is_empty(self):
    if self.root is None:
        return True
    return False

#  先序遍历
def pre_order(self,tree_node):
    print tree_node.data
    if tree_node.left is not None:
        self.pre_order(tree_node.left)
    if tree_node.right is not None:
        self.pre_order(tree_node.right)

# 中序遍历
def in_order(self,tree_node):

    if tree_node.left is not None:
        self.in_order(tree_node.left)
    print tree_node.data
    if tree_node.right is not None:
        self.in_order(tree_node.right)

# 后序遍历
def post_order(self,tree_node):
    if tree_node.left is not None:
        self.post_order(tree_node.left)
    if tree_node.right is not None:
        self.post_order(tree_node.right)
    print tree_node.data

tree_d = TreeNode(left=None,right=None,data='D')
tree_e = TreeNode(left=None,data='E')
tree_f = TreeNode(left=None,data='F')
tree_b = TreeNode(left=tree_d,right=tree_e,data='B')
tree_c = TreeNode(left=tree_f,data='C')
tree_a = TreeNode(left=tree_b,right=tree_c,data='A')

下面是测试代码

btree = BTree(tree_a)
print btree.is_empty()
btree.pre_order(btree.root)
btree.in_order(btree.root)
btree.post_order(btree.root)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读