Python数据结构--树遍历算法】的更多相关文章

''' 遍历是访问树的所有节点的过程,也可以打印它们的值. 因为所有节点都通过边(链接)连接,所以始终从根(头)节点开始. 也就是说,我们不能随机访问树中的一个节点. 这里介绍三种方式来遍历一棵树 -顺序遍历 -前序遍历 -后序遍历 ''' class Node: def __init__(self, data): self.left = None self.right = None self.data = data def insert(self, data): if self.data: i…
一.树的定义 树形结构是一类重要的非线性结构.树形结构是结点之间有分支,并具有层次关系的结构.它非常类似于自然界中的树.树的递归定义:树(Tree)是n(n≥0)个结点的有限集T,T为空时称为空树,否则它满足如下两个条件:(1)有且仅有一个特定的称为根(Root)的结点:(2)其余的结点可分为m(m≥0)个互不相交的子集Tl,T2,-,Tm,其中每个子集本身又是一棵树,并称其为根的子树(Subree). 二.二叉树的定义 二叉树是由n(n≥0)个结点组成的有限集合.每个结点最多有两个子树的有序树…
什么是树 数是一种抽象的数据类型(ADT)或是作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合,它是由n(n>1)的有限个节点和节点之间的边组成的一个有层次关系的集合. 树的组成元素: 根节点:树的最上层的节点,任何非空的树都有一个节点 路径:从起始节点到终止节点经历过的路径 父节点:除了根节点,每个节点的上一层边连接的节点就是它的父节点 子节点:每一节点由边指向的下一层节点 兄弟节点:同一父节点且处在同一层的节点 子树:每个节点包含它所有的后代组成的子树 叶子节点:没有子节点的…
树:是一种抽象的数据类型 树的作用:用来模拟树状结构性质的数据集合 树的特点: 每个节点有零个或者多个节点 没有父节点的节点,叫做根节点 每一个根节点有且只有一个父节点 除了根节点外,每个节点可以分成多个不相交的子树 叶节点和终端节点:度为零的节点 树的种类:无序树和有序树 有序树:(多用链表存储),分为:二叉树.霍夫曼树.B树 加索引可以增加查询的效率,但会影响增删改查的效率 二插树:完全二叉树.满二叉树.平衡二叉树.排序二叉树 二叉树的性质: 性质1.在二叉树的第i层至多有2^(i-1)个结…
说起二叉树的遍历,大学里讲的是递归算法,大多数人首先想到也是递归算法.但作为一个有理想有追求的程序员.也应该学学非递归算法实现二叉树遍历.二叉树的非递归算法需要用到辅助栈,算法着实巧妙,令人脑洞大开. 以下直入主题: 定义一颗二叉树,请看官自行想象其形状, class BinNode( ): def __init__( self, val ): self.lchild = None self.rchild = None self.value = val binNode1 = BinNode( 1…
树表示由边连接的节点.它是一个非线性的数据结构.它具有以下特性. 一个节点被标记为根节点. 除根节点之外的每个节点都与一个父节点关联. 每个节点可以有一个arbiatry编号的chid节点. 我们使用前面讨论的os节点概念在python中创建了一个树数据结构.我们将一个节点指定为根节点,然后将更多的节点添加为子节点.下面是创建根节点的程序. 创建树 创建根 我们只需要创建一个节点类并向节点添加赋值.这就变成了只有根节点的树. class Node: def __init__(self, data…
python数据结构之树和二叉树(先序遍历.中序遍历和后序遍历) 树 树是\(n\)(\(n\ge 0\))个结点的有限集.在任意一棵非空树中,有且只有一个根结点. 二叉树是有限个元素的集合,该集合或者为空.或者有一个称为根节点(root)的元素及两个互不相交的.分别被称为左子树和右子树的二叉树组成. 二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒. 二叉树的第i层至多有2^{i-1}个结点 深度为k的二叉树至多有2^k-1个结点: 对任何一棵二叉…
Python入门篇-数据结构树(tree)的遍历 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.遍历 迭代所有元素一遍. 二.树的遍历 对树中所有元素不重复地访问一遍,也称作扫描. 三.广度优先遍历 层序遍历: (1)按照树的层次,从第一层开始,自左向右遍历元素 (2)遍历序列如下图所示,(ABCDEFGHI) 四.深度优先遍历 设树的根结点为D,左子树为L,右子树为R,且要求L一定在R之前,则有下面几种遍历方式: 前序遍历,也叫先序遍历.也叫先根遍历,DLR 中序遍历,…
1.Python数据结构篇 数据结构篇主要是阅读[Problem Solving with Python]( http://interactivepython.org/courselib/static/pythonds/index.html)时写下的阅读记录,当然,也结合了部分[算法导论]( http://en.wikipedia.org/wiki/Introduction_to_Algorithms)中的内容,此外还有不少wikipedia上的内容,所以内容比较多,可能有点杂乱.这部分主要是介…
最近忙着准备各种笔试的东西,主要看什么数据结构啊,算法啦,balahbalah啊,以前一直就没看过这些,就挑了本简单的<啊哈算法>入门,不过里面的数据结构和算法都是用C语言写的,而自己对python相对比较熟悉,而且感觉用python实现数据结构相对容易一点.就把这个月来学到的一些,整理一下做个月底总结. 涉及到的书有<啊哈算法>.<复杂性思考>.<数据结构基础(C语言版) 第二版>.<Python Algorithms>,以及其他大牛们的网上教…