python 树 数据结构_python数据结构之树

#这个类是用于定义树的基本结构,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)

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

0dd3198a16b512376d8f8637b8fe57f4.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值