《数据结构与算法》PPT课堂课件-第7章-树.pdf
《《数据结构与算法》PPT课堂课件-第7章-树.pdf》由会员分享,可在线阅读,更多相关《《数据结构与算法》PPT课堂课件-第7章-树.pdf(51页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2021/6/1317.0.1树树的的原原型型 社社会会生生活活中中:家家族族的的族族谱谱,政政府府自自上上至至下下设设置置的的机机构构体体系系,学学校校的的管管理理体体系系,公公司司的的管管理理体体系系, 7.0.2树树的的应应用用 操操作作系系统统中中:文文件件系系统统的的组组织织, 编编译译系系统统中中:复复合合语语句句的的句句法法, (二二元元运运算算)表表达达式式的的表表示示中中:表表达达式式树树, 编编码码与与解解码码中中:Huffman树树, 数数据据对对象象的的表表示示中中:大大量量地地用用到到树树。第第七七章章 树树2021/6/132 7.1 树树的的定定义义定定义义:树树
2、是是n(n0)个个结结点点的的有有限限集集T,其其中中:有有且且仅仅有有一一个个特特定定的的结结点点,称称为为树树的的根根当当n1时时,其其余余结结点点可可分分为为m(m0)个个互互不不相相交交的的有有限限集集T1,T2,Tm,其其中中每每一一个个集集合合本本身身又又是是一一棵棵树树,称称为为根根的的子子树树特特点点:树树中中至至少少有有一一个个结结点点根根树树中中各各子子树树是是互互不不相相交交的的集集合合2021/6/133A只只有有根根结结点点的的树树ABCDEFGHIJKLM有有子子树树的的树树根根子子树树2021/6/134基基本本术术语语结结点点(node)表表示示树树中中的的元元
3、素素结结点点的的度度(degree)结结点点拥拥有有的的子子树树数数叶叶子子(leaf)度度为为0的的结结点点孩孩子子(child)结结点点子子树树的的根根称称为为该该结结点点的的孩孩子子双双亲亲(parents)孩孩子子结结点点的的上上层层结结点点兄兄弟弟(sibling)同同一一双双亲亲的的孩孩子子树树的的度度一一棵棵树树中中最最大大的的结结点点度度数数结结点点的的层层次次(level)从从根根结结点点算算起起,根根为为第第一一层层,它它的的孩孩子子为为第第二二层层深深度度(depth)树树中中结结点点的的最最大大层层次次数数森森林林(forest)m(m 0)棵棵互互不不相相交交的的树树
4、的的集集合合2021/6/135ABCDEFGHIJKLM结结点点A的的度度:3结结点点B的的度度:2结结点点M的的度度:0叶叶子子:K,L,F,G,M,I,J结结点点A的的孩孩子子:B,C,D结结点点B的的孩孩子子:E,F结结点点I的的双双亲亲:D结结点点L的的双双亲亲:E结结点点B,C,D为为兄兄弟弟结结点点K,L为为兄兄弟弟树树的的度度:3结结点点A的的层层次次:1结结点点M的的层层次次:4树树的的深深度度:4结结点点A是是结结点点F,G的的祖祖先先2021/6/1367.2 树树的的遍遍历历树树的的遍遍历历遍遍历历依依次次对对树树中中结结点点访访问问一一次次且且仅仅访访问问一一次次常常
5、用用方方法法先先序序遍遍历历:先先访访问问树树的的根根结结点点,然然后后从从左左到到右右依依次次先先序序遍遍历历根根的的每每棵棵子子树树中中序序遍遍历历:先先中中序序遍遍历历第第一一棵棵子子树树,然然后后访访问问根根,接接着着依依次次对对其其余余子子树树进进行行遍遍历历后后序序遍遍历历:先先依依次次后后序序遍遍历历每每棵棵子子树树,然然后后访访问问根根结结点点按按层层次次遍遍历历:先先访访问问第第一一层层上上的的结结点点,然然后后依依次次遍遍历历第第二二层层,第第n层层的的结结点点2021/6/137ABCDEFGHIJKLMNO先先序序遍遍历历:后后序序遍遍历历:层层次次遍遍历历:ABE F
6、 I GCDHJ KL NOME I F G B C J K N O L M H D AAB C DE F GH I J KL MNO中中序序遍遍历历:E B I F G AC J HKN L OMD2021/6/138 7.3 树树的的存存储储结结构构7.3.1 父父结结点点数数组组表表示示法法实实现现:定定义义一一个个一一维维数数组组存存放放树树的的每每个个结结点点的的父父结结点点。特特点点:可可唯唯一一的的表表示示任任 何何一一棵棵树树 找找双双亲亲容容易易,找找 孩孩子子难难2021/6/1397.3.1 父父结结点点数数组组表表示示法法效效率率分分析析: 寻寻找找一一个个结结点点的的
7、父父结结点点只只需需要要O(1)O(1)时时间间。 对对于于涉涉及及查查询询儿儿子子结结点点和和兄兄弟弟结结点点信信息息的的运运算算,可可能能要要遍遍历历整整个个数数组组。 改改进进: 约约定定让让树树结结点点的的编编号号满满足足:儿儿子子结结点点的的编编号号大大于于父父结结点点的的编编号号,且且兄兄弟弟结结点点的的编编号号是是从从左左到到右右递递增增的的。 在在此此约约定定下下,结结点点k的的儿儿子子只只要要在在编编号号大大于于k的的结结点点中中找找;结结点点k的的左左兄兄弟弟只只要要在在编编号号小小于于k的的结结点点中中找找;结结点点k的的右右兄兄弟弟只只要要在在编编号号大大于于k的的结结
8、点点中中找找。 简简单单的的办办法法是是按按层层次次遍遍历历的的顺顺序序编编号号。2021/6/13107.3.2 双双亲亲表表示示法法实实现现:定定义义结结构构数数组组存存放放树树的的结结点点数数据据域域,每每个个结结点点含含两两个个域域:数数据据域域:存存放放结结点点本本身身信信息息双双亲亲域域:指指示示本本结结点点的的双双亲亲结结点点在在数数组组中中位位置置特特点点:找找双双亲亲容容易易,找找孩孩子子难难2021/6/1311abcdefhgiacdefghib012235551096012345789dataparent0号号单单元元不不用用或或存存结结点点个个数数如何找孩子结点202
9、1/6/13127.3.3 7.3.3 孩孩子子表表示示法法多多重重链链表表:每每个个结结点点有有多多个个指指针针域域,分分别别指指向向其其子子树树的的根根结结点点同同构构:结结点点的的指指针针个个数数相相等等,为为树树的的度度D结结点点不不同同构构:结结点点指指针针个个数数不不等等,为为该该结结点点的的度度ddata child1 child2 . childDdata degree child1 child2 . childd2021/6/13137.3.3 7.3.3 孩孩子子表表示示法法孩孩子子链链表表:每每个个结结点点的的孩孩子子结结点点用用单单链链表表存存储储,再再用用含含n个个元
10、元素素的的结结构构数数组组指指向向每每个个孩孩子子链链表表孩孩子子结结点点:typedef struct node int child; /该该结结点点在在表表头头数数组组中中下下标标 struct node *next; /指指向向下下一一孩孩子子结结点点 JD;表表头头结结点点:typedef struct tnode datatype data; /数数据据域域 struct node *fc; /指指向向第第一一个个孩孩子子结结点点 TD; TD tM; /t0不不用用2021/6/1314abcdefhgi6012345789acdefghibdatafc 2 3 4 5 9 7 8
11、 6如何找双亲结点2021/6/1315改改进进:带带双双亲亲的的孩孩子子链链表表 (将将双双亲亲表表示示法法和和孩孩子子表表示示法法结结合合)612345789acdefghibdatafc 2 3 4 5 9 7 8 6012235551parentabcdefhgi2021/6/13167.3.4 左左儿儿子子右右兄兄弟弟表表示示法法(二二叉叉树树表表示示法法)实实现现:用用二二叉叉链链表表作作树树的的存存储储结结构构,链链表表中中每每个个结结点点的的两两个个指指针针域域分分别别指指向向其其第第一一个个孩孩子子结结点点和和下下一一个个兄兄弟弟结结点点特特点点操操作作容容易易破破坏坏了了树
12、树的的层层次次abcdefhgi a b c d e f g h i2021/6/13177.4 二二叉叉树树定定义义:二二叉叉树树是是n(n 0)个个结结点点的的有有限限集集,它它或或为为空空树树(n=0),或或由由一一个个根根结结点点和和两两棵棵分分别别称称为为左左子子树树和和右右子子树树的的互互不不相相交交的的二二叉叉树树构构成成特特点点每每个个结结点点至至多多有有二二棵棵子子树树(即即不不存存在在度度大大于于2的的结结点点)二二叉叉树树的的子子树树有有左左、右右之之分分,且且其其次次序序不不能能任任意意颠颠倒倒五五种种基基本本形形态态A只有根结点的二叉树空二叉树AB右子树为空AB左子树
13、为空ABC左、右子树均非空2021/6/13187.4.1 二二叉叉树树性性质质 性性质质1:证证明明:用用归归纳纳法法证证明明之之 i=1时时,只只有有一一个个根根结结点点, 是是对对的的 假假设设对对所所有有j(1 j1,则则其其双双亲亲是是 i/2 (2) 如如果果2in,则则结结点点i无无左左孩孩子子;如如果果2i n,则则其其左左 孩孩子子是是2i (3) 如如果果2i+1n,则则结结点点i无无右右孩孩子子;如如果果2i+1 n, 则则其其右右孩孩子子是是2i+1问问题题:有有一一棵棵完完全全二二叉叉树树,其其结结点点个个数数为为578, 求求此此二二叉叉树树中中叶叶子子结结点点的的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构与算法 数据结构 算法 PPT 课堂 课件
限制150内