栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

数据结构与算法分析4 Python创建二叉树采用先、中、后序遍历

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数据结构与算法分析4 Python创建二叉树采用先、中、后序遍历

 1.Exp4Class创建结点类

# 创建结点类
class Node():
    def __init__(self, data, l=None, r=None):
        self.data = data
        self.l = l
        self.r = r

    # 添加左子树
    def addLeftTree(self, node):
        self.l = node

    # 添加右子树
    def addRightTree(self, node):
        self.r = node

    # 先序遍历:根左右
    def PreTravel(self, DataList):  # DataList存储遍历的数据
        DataList.append(self.data)
        if self.l is not None:  # 子树不为空则递归该方法
            self.l.PreTravel(DataList)
        if self.r is not None:
            self.r.PreTravel(DataList)
        return DataList

    # 中序遍历:左根右
    def MidTravel(self, DataList):
        if self.l is not None:
            self.l.MidTravel(DataList)
        DataList.append(self.data)
        if self.r is not None:
            self.r.MidTravel(DataList)
        return DataList

    # 后序遍历:左右根
    def BackTravel(self, DataList):
        if self.l is not None:
            self.l.BackTravel(DataList)
        if self.r is not None:
            self.r.BackTravel(DataList)
        DataList.append(self.data)
        return DataList

2.Exp4Run:

from Exp4Class import Node

# 创建子树
a = Node(1)
b = Node(2)
c = Node(3)
d = Node(4)
e = Node(5)
f = Node(6)
g = Node(7)
a.addLeftTree(b)
a.addRightTree(f)
b.addRightTree(c)
c.addLeftTree(d)
c.addRightTree(e)
f.addLeftTree(g)

print("先序遍历:{}".format(a.PreTravel([])))
print("中序遍历:{}".format(a.MidTravel([])))
print("后序遍历:{}".format(a.BackTravel([])))

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/950213.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号