python数据结构之树

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#这个类是用于定义树的基本结构,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 )
 
     =  Btree(base)
     x.qout(x.base)
     x.hout(x.base)


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

wKioL1iIe2KBhsGYAACH-vLluYo881.jpg-wh_50


本文转自 TtrToby 51CTO博客,原文链接:http://blog.51cto.com/freshair/1894225


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值