- 1、本文档共59页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
树和二叉树-云南民族大学数学与计算机科学学院
第六章 树和二叉树 树是一类重要的非线性数据结构,是以分支关系定义的层次结构 6.1 树的定义和基本术语 定义 定义:树(tree)是n(n0)个结点的有限集T,其中: 有且仅有一个特定的结点,称为树的根(root) 当n1时,其余结点可分为m(m0)个互不相交的有限集T1,T2,……Tm,其中每一个集合本身又是一棵树,称为根的子树(subtree) 特点: n=0叫空树 树中至少有一个结点——根 树中各子树是互不相交的集合 每个结点(根结点除外)有且仅有一个直接前驱,有0个或多个后继。 基本术语 结点(node)——表示树中的元素,包括数据项及若干指向其子树的分支 结点的度(degree)——结点拥有的子树数 叶子(leaf)——度为0的结点 孩子(child)——结点子树的根称为该结点的孩子 双亲(parents)——孩子结点的上层结点叫该结点的~ 兄弟(sibling)——同一双亲的孩子 树的度——一棵树中最大的结点度数 结点的层次(level)——从根结点算起,根为第一层,它的孩子为第二层…… 深度(depth)——树中结点的最大层次数 有序树——结点的子树从左至右有序 无序树 森林(forest)——m(m?0)棵互不相交的树的集合 树的抽象数据类型树的基本操作:P118~119树的建立和遍历——重点 树的表示 四种 P120 6.2 二叉树 一、定义 二叉树是n(n?0)个结点的有限集,它或为空树(n=0),或由一个根结点和两棵分别称为左子树和右子树的互不相交的二叉树构成 特点 每个结点至多有二棵子树(即不存在度大于2的结点) 二叉树的子树有左、右之分,且其次序不能任意颠倒(有序树) 基本形态 二、二叉树性质 性质1: 两种特殊形式的二叉树 满二叉树 定义: 性质 性质4: 证明:设完全二叉树的深度为k,则有 2k-1 - 1 n ? 2k - 1 2k-1 ? n 2k 取对数 k-1 ? log2n k 因为k为整数,所以k = ?log2n? +1 性质5:如果对一棵有n个结点的完全二叉树的结点按层序编号,则对任一结点i(1?i?n),有: (1) 如果i=1,则结点i是二叉树的根,无双亲;如果i1,则其双亲是?i/2? (2) 如果2in,则结点i无左孩子;如果2i?n,则其左孩子是2i (3) 如果2i+1n,则结点i无右孩子;如果2i+1?n,则其右孩子是2i+1 三、二叉树的存储结构 顺序存储结构:将待存储二叉树的结点按满二叉树的结点层次编号,依编号次序将二叉树中的数据元素存放到一段地址连续的存储单元中。 链式存储结构 二叉链表 6.3 遍历二叉树 遍历二叉树(Traversing Binary Tree):按某种次序访问树中的结点,要求每个结点访问一次且仅访问一次。 遍历的结果:产生一个关于结点的线性序列。 二叉树 ? 线性表 (非线性结构) (线性结构) 设访问根结点记作 D 遍历根的左子树记作 L 遍历根的右子树记作 R 则可能的遍历次序有 先序 DLR DRL 中序 LDR RDL 后序 LRD RLD 遍历二叉树的非递归算法 先序遍历:算法1,将右子树根结点 入栈,(栈所需最大容量为n/2+1);算法2将根结点入栈 中序遍历:在遍历左子树之前,先把根结点入栈,当左子树遍历结束后,从栈中弹出,访问,再遍历右子树 后序遍历: 1)设定一个指针,指向 最近访问过的结点。在退栈取出根结点时,需判断:若根结点的右子树为空,或它的右子树非空,但已遍历完毕,即它的右子树根结点恰好是最近一次访问过的结点时,应该遍历该根结点。反之,该根结点应重新入栈,先遍历它的右子树。 2)还可同时设定一个标记,指示该根结点是第一次还是第二次入栈 由二叉树的先序序列和中序序列可唯一地确定一棵二叉树。例, 先序序列 { ABHFDECKG } 和中序序列 { HBDFAEKCG }, 构造二叉树过程如下: 遍历算法应用——二叉树的显示输出 void PrintBiTree(BiTree T,int n) { int i; char ch= ; if (T) { PrintBiTree(T-rchild,n+1); for (i=1;i=n;++i) {printf(%5c,ch);} printf(%c\n, T
您可能关注的文档
- 星虫动物门身体一般呈圆柱形.PPT
- 曳引机承载综合型肥料撒布机.DOC
- 赢商共享-藁城西刘村项目前期提案21499786.PPT
- 赢商共享-全国连锁品牌餐饮拓展资料1556109359.PPT
- 赣北第四纪红壤区侵蚀性降雨强度与雨量标准的确定 - Ingenta Connect.PDF
- 暗河型溶洞的形成和演化过程-织金洞.PDF
- 曲面最短路径.DOC
- 赢商共享-4A201302世联海南乐罗镇海景度假项108169900.PPT
- 更正公告1JG2017-243农院公开-天津政府采购网.DOC
- 走近德语文化-上海图书馆.PPT
- Shimano禧玛诺自行车RAWH001 WH-R9100-C40-CL WH-R9100-C40-TU WH-R9100-C60-CL WH-R9100-C60-TU 车轮 经销商手册.pdf
- Shimano禧玛诺自行车MARD001 RD-M8130-SGS (E-BIKE) RD-M8130-SGS (MTB) RD-M9100 RD-M9120 后变速器 经销商手册.pdf
- Shimano禧玛诺自行车MAPD001 SM-PD22 SM-PD60 脚踏板(SPD) 脚踏板(Click'R) 反光片 经销商手册.pdf
- Shimano禧玛诺自行车BR0006 SM-MA-F180P SM-MA-F180P2 刹车手柄(油压碟刹) 液压碟式刹车 碟刹安装接片 经销商手册.pdf
- Shimano禧玛诺自行车LAFC001 FC-U6010 FC-U8000 中轴 中轴(HOLLOWTECH II) 曲柄 经销商手册.pdf
- Shimano禧玛诺自行车CASG002 NEXUS Inter-5E SL-C7000-5 变速手柄 经销商手册.pdf
- Shimano禧玛诺自行车HB0005 HB-RM33 HB-TX505 自由花鼓(碟刹) 自由花鼓 前花鼓(碟刹) 经销商手册.pdf
- Shimano禧玛诺自行车MAHB001 TL-FH16 前花鼓(碟刹(筒轴)) 前花鼓(碟刹) 自由花鼓(碟刹(筒轴)) 工具 经销商手册.pdf
- Shimano禧玛诺自行车RAPD001 PD-R9100 PD-RS500 SM-PD63 SM-PD65 脚踏板(SPD-SL) 经销商手册.pdf
- Shimano禧玛诺自行车GARD001 RD-RX810 RD-RX810-LE RD-RX812 RD-RX812-LE 后变速器 经销商手册.pdf
文档评论(0)