xuke123 发表于 2018-8-15 12:20:40

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)
页: [1]
查看完整版本: python数据结构之树