#这个类是用于定义树的基本结构,leftjd:左节点,rightjd:右节点,data:数据
class Tree():def __init__(self,leftjd=0,rightjd=0,data=0):self.leftjd = leftjdself.rightjd = rightjdself.data = data#这个类是用于定义一个二叉树
class Btree():def __init__(self,base=0):self.base = base#这个方法是判断根是否为空def empty(self):if self.base == 0:return Trueelse:return False#这个方法是实现树的前序遍历,遍历方式为:根左右,也就是789def qout(self,jd):if jd == 0: #这个if是判节点是否为空,如果是为空则原样返回returnprint jd.dataself.qout(jd.leftjd)self.qout(jd.rightjd)#这个方法是实现树的中序遍历,遍历方式为:左根右,也就是879def mount(self,jd):if jd == 0: #这个if是判节点是否为空,如果是为空则原样返回returnself.mount(jd.leftjd)print jd.dataself.mount(jd.rightjd)#这个方法是实现树的后序遍历,遍历方式为:左右根,也就是897def hout(self,jd):if jd == 0: #这个if是判节点是否为空,如果是为空则原样返回returnself.hout(jd.leftjd)self.hout(jd.rightjd)print jd.dataif __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)

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

转载于:https://blog.51cto.com/freshair/1894225

python数据结构之树相关推荐

  1. Python 数据结构 tree 树

    [Python] 数据结构 tree 树 树节点类 TreeNode 作为最简单的树节点,我们只需要3个基本属性 name: 当前节点的名字(使用str来保存) parent: 父节点对象(对根节点来 ...

  2. python数据结构递归树_python数据结构(对称二叉树递归和迭代)

    1.题目描述 给定一个二叉树,检查它是否是镜像对称的. 2.代码详解 2.1 递归写法 # Definition for a binary tree node. class TreeNode(obje ...

  3. 【python数据结构】树和二叉树

    目录 树的逻辑结构 树的定义 树的基本术语 树的遍历操作 前序遍历 后序遍历 层序遍历 树的存储结构 双亲表示法 孩子链表表示法 双亲孩子表示法 孩子兄弟表示法 二叉树的逻辑结构 二叉树的特点 ​特殊 ...

  4. python数据结构树和二叉树,python数据结构树和二叉树简介

    一.树的定义 树形结构是一类重要的非线性结构.树形结构是结点之间有分支,并具有层次关系的结构.它非常类似于自然界中的树. 树的递归定义: 树(Tree)是n(n≥0)个结点的有限集T,T为空时称为空树 ...

  5. Python数据结构学习笔记——树和图

    目录 一.树的概念 二.二叉树的实现 (一)列表的列表 (二)结点与引用 三.图的概念 四.图的实现 (一)邻接矩阵 (二)邻接表 一.树的概念 树是一种数据结构,树由结点及连接结点的边组成,每个树有 ...

  6. python数据结构 树_python 数据结构四 之 二叉树和树

    python数据结构教程第四课 树形结构是复杂结构中最简单的一类,这是一类非常重要的结构,在实际中使用广泛,反映了许多计算过程的抽象结构 一.简介 1.树 2.二叉树 二.二叉树和树的抽象数据类型(A ...

  7. python数据结构和算法 时间复杂度分析 乱序单词检测 线性数据结构 栈stack 字符匹配 表达式求值 queue队列 链表 递归 动态规划 排序和搜索 树 图

    python数据结构和算法 参考 本文github 计算机科学是解决问题的研究.计算机科学使用抽象作为表示过程和数据的工具.抽象的数据类型允许程序员通过隐藏数据的细节来管理问题领域的复杂性.Pytho ...

  8. python 树状数组_【算法日积月累】19-高级数据结构:树状数组

    树状数组能解决的问题 树状数组,也称作"二叉索引树"(Binary Indexed Tree)或 Fenwick 树. 它可以高效地实现如下两个操作: 1.数组前缀和的查询: 2. ...

  9. 【Python数据结构系列】☀️《树与二叉树-基础知识》——知识点讲解+代码实现☀️

    文章目录 数据结构之树和二叉树 第一部分 树和二叉树的基础知识 1.树和二叉树的定义 1.1 树的定义 1.2 树的基本术语 1.3 二叉树的定义 2.二叉树的性质和存储结构 2.1 二叉树的性质 2 ...

最新文章

  1. python拟合求参_机器学习作业(四)神经网络参数的拟合——Python(numpy)实现
  2. Apache HTTP Server Version 2.2 文档中文版
  3. cqueue结构pop_c++ stl栈容器stack的pop(),push()等用法介绍及头文件
  4. CentOS7(64位)安装NVIDIA显卡驱动和CUDA8.0
  5. ros 消息队列与缓冲区_[ROS] [笔记(1)] 一个最简单的例子:Hello Robot(消息、发布者与订阅者)...
  6. X86汇编——字符串逆序输出
  7. LiveVideoStack线上分享第五季(十二):移动端多种通话场景统一技术方案实践...
  8. .Net Core with 微服务 - Consul 注册中心
  9. 给数据库表字段设置默认值
  10. iframe高度自适应(IE6+、FF、Opera、Chrome等测试通过)
  11. mysql替换sql中rank函数_MySQL sql Rank()函数实现
  12. 利用Octave解线性方程组
  13. fopen 參数具体解释
  14. 设计模式原则之四:迪米特法则
  15. 阿里妈妈大规模在线分层实验实践
  16. 【RAC】 RAC For W2K8R2 安装--创建ASM磁盘组(六)
  17. 手机进程多了,有的进程就无法联网?
  18. 机房服务器硬件供应,机房服务器硬件维护方法大全
  19. SM3算法 (python)
  20. u盘被隐藏的文件怎么恢复

热门文章

  1. PHP简单操作Excel
  2. Web自动化测试理论知识
  3. vue源码学习--vue源码学习入门
  4. web.xml上下文配置
  5. UTF-8带BOM和不带BOM的转换
  6. nodejs+vue.js+webpack
  7. Codeforces698B【并查集+拆环】
  8. 阿里笔试-二叉树由前序遍历和中序遍历推导后序遍历
  9. 2014年06月30日
  10. Ubuntu下MySQL忘记root密码重置