Python实现树的先序、中序、后序排序算法示例

yipeiwu_com7年前Python基础

本文实例讲述了Python实现树的先序、中序、后序排序算法。分享给大家供大家参考,具体如下:

#encoding=utf-8
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 qout(self,jd):
    if jd == 0:
    return
  print jd.data
  self.qout(jd.leftjd)
  self.qout(jd.rightjd)
  #中序遍历 左根右
  def mout(self,jd):
  if jd == 0:
    return
  self.mout(jd.leftjd)
  print jd.data
  self.mout(jd.rightjd)
  #后序遍历 左右根
  def hout(self,jd):
  if jd == 0:
    return
  self.hout(jd.leftjd)
  self.hout(jd.rightjd)
  print jd.data
jd1 = Tree(data=8)
jd2 = Tree(data=9)
base = Tree(jd1,jd2,7)
x = Btree(base)
x.qout(x.base)
print '\r\n'
x.mout(x.base)
print '\r\n'
x.hout(x.base)

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

相关文章

Python深入学习之内存管理

Python深入学习之内存管理

语言的内存管理是语言设计的一个重要方面。它是决定语言性能的重要因素。无论是C语言的手工管理,还是Java的垃圾回收,都成为语言最重要的特征。这里以Python语言为例子,说明一门动态类型...

Windows下使Python2.x版本的解释器与3.x共存的方法

Python2 和 Python3 是不兼容的,如果碰到无法升级到 Python2 代码,或者同事中有坚守 Python2 阵营的情况,就要考虑 Python2 和 Python3 在系...

Python Sqlite3以字典形式返回查询结果的实现方法

sqlite3本身并没有像pymysql一样原生提供字典形式的游标。 cursor = conn.cursor(pymysql.cursors.DictCursor) 但官方文...

python使用pandas处理大数据节省内存技巧(推荐)

python使用pandas处理大数据节省内存技巧(推荐)

一般来说,用pandas处理小于100兆的数据,性能不是问题。当用pandas来处理100兆至几个G的数据时,将会比较耗时,同时会导致程序因内存不足而运行失败。 当然,像Spark这类的...

Python实现的批量下载RFC文档

RFC文档有很多,有时候在没有联网的情况下也想翻阅,只能下载一份留存本地了。 看了看地址列表,大概是这个范围: http://www.networksorcery.com/enp/rfc...