首页 > 编程语言 > 详细

python数据结构之树

时间:2017-01-25 23:18:06      阅读:353      评论:0      收藏:0      [点我收藏+]
#这个类是用于定义树的基本结构,leftjd:左节点,rightjd:右节点,data:数据
class Tree():
    def __init__(self,leftjd=0,rightjd=0,data=0):
        self.leftjd = leftjd
        self.rightjd = rightjd
        self.data = data

#这个类是用于定义一个二叉树
class Btree():
    def __init__(self,base=0):
        self.base = base
    
     #这个方法是判断根是否为空
    def empty(self):
        if self.base == 0:
            return True
        else:
            return False
            
     #这个方法是实现树的前序遍历,遍历方式为:根左右,也就是789
    def qout(self,jd):
        if jd == 0: #这个if是判节点是否为空,如果是为空则原样返回
            return
        print jd.data
        self.qout(jd.leftjd)
        self.qout(jd.rightjd)
        
     #这个方法是实现树的中序遍历,遍历方式为:左根右,也就是879
    def mount(self,jd):
        if jd == 0: #这个if是判节点是否为空,如果是为空则原样返回
            return
        self.mount(jd.leftjd)
        print jd.data
        self.mount(jd.rightjd)
        
     #这个方法是实现树的后序遍历,遍历方式为:左右根,也就是897
    def hout(self,jd):
        if jd == 0: #这个if是判节点是否为空,如果是为空则原样返回
            return
        self.hout(jd.leftjd)
        self.hout(jd.rightjd)
        print jd.data

if __name__ == "__main__":
        #注意:在写代码的时候,数据存储进去的时候需要倒过来写,也就是从叶子开始,而不是从根节点开始
    jd1 = Tree(data=8) #定义节点1,左节点的数据为8,但是这个8节点下面没有左节点和右节点,所以只需要传递一个data进去
    jd2 = Tree(data=9)
    base = Tree(jd1,jd2,7)

    x = Btree(base)
    x.qout(x.base)
    x.hout(x.base)


下图为本示例的一个二叉树的结构图,上面的代码就是实现下图的存储方式

技术分享

本文出自 “运维杂谈Q群:223843163” 博客,请务必保留此出处http://freshair.blog.51cto.com/8272891/1894225

python数据结构之树

原文:http://freshair.blog.51cto.com/8272891/1894225

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!