数据结构树的.pptx
《数据结构树的.pptx》由会员分享,可在线阅读,更多相关《数据结构树的.pptx(41页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、(根目录)f1f2f3fnd1d2dm例例2f11f12f1kd11d12 第1页/共41页例例3第2页/共41页1 树的基本概念树的基本概念2 树的存储结构树的存储结构3 二叉树二叉树4 二叉树的存储结构二叉树的存储结构5 二叉树的遍历二叉树的遍历6 线索二叉树线索二叉树第3页/共41页 6.1 树的基本概念树的基本概念 树树是由是由n 0 个结点组成的有穷集合个结点组成的有穷集合(不妨用不妨用D表示表示)以及结点之间关系组成的集合构成的结构。以及结点之间关系组成的集合构成的结构。当当n=0 时,称该树为空树;时,称该树为空树;在任何一棵非空的树中,有一个特殊的结点在任何一棵非空的树中,有一
2、个特殊的结点t D,称之为该树的根结点;其余结点称之为该树的根结点;其余结点Dt被分割成被分割成m0个个不相交的子集不相交的子集D1,D2,Dm,其中每一个子集其中每一个子集Di又为一又为一棵树,分别称之为棵树,分别称之为t 的的子树子树。递归定义一一.树的定义树的定义第4页/共41页JIHGFEACXBA的第1棵子树A的第3棵子树A的第2棵子树二二.树树(逻辑上逻辑上)的特点的特点1.有且仅有一个结点没有前驱结点有且仅有一个结点没有前驱结点,该结点为树的根结点。该结点为树的根结点。2.除了根结点外除了根结点外,每个结点有且仅有一个直接前驱结点。每个结点有且仅有一个直接前驱结点。3.包括根结点
3、在内,每个结点可以有多个后继结点。包括根结点在内,每个结点可以有多个后继结点。第5页/共41页JIHGFEACXB4.树形表示法树形表示法 借助自然界中一棵倒置的树的形状来表示数据元素之间层次借助自然界中一棵倒置的树的形状来表示数据元素之间层次关系的方法。关系的方法。第6页/共41页1.结点的度:结点的度:2.树的度:树的度:3.叶结点:叶结点:4.分支结点分支结点:5.层次的定义层次的定义:JIHGFEACXB该结点拥有的子树的数目。该结点拥有的子树的数目。树中结点度的最大值树中结点度的最大值。度为度为0 的结点的结点.度非度非0 的结点的结点.根结点为第一层根结点为第一层,若某结点在第若某
4、结点在第i 层层,则其孩子结点则其孩子结点(若存在若存在)为第为第i+1层层.四四.基本名词术语基本名词术语第第1层层第第2层层第第3层层第7页/共41页7.树林树林(森林森林):):m 0 棵不相交的树组成的树的集合棵不相交的树组成的树的集合.8.树的有序性树的有序性:6.树的深度树的深度:树中结点所处的最大层次数树中结点所处的最大层次数.若树中结点的子树的相对位置不能若树中结点的子树的相对位置不能 随意改变随意改变,则称该树为则称该树为有序树有序树,否,否 则称该树为则称该树为无序树无序树。JIHGFEACXB深度为深度为3的树的树第8页/共41页二叉树的基本形态:二叉树的基本形态:(空空
5、)根根根根左左子子树树根根右右子子树树根根左左子子树树右右子子树树 6.2 二叉树二叉树第9页/共41页二二.两种特殊形态的二叉树两种特殊形态的二叉树 若一棵二叉树中的结点若一棵二叉树中的结点,或者为叶结点,或者为叶结点,或者具有两或者具有两棵非空子树棵非空子树,并且叶结点都集并且叶结点都集中在二叉树的最下面一层中在二叉树的最下面一层.这这样的二叉树为满二叉树样的二叉树为满二叉树.1.满二叉树满二叉树 若一棵二叉树中只有最下若一棵二叉树中只有最下面两层的结点的度可以小于面两层的结点的度可以小于2,并且最下面一层的结点并且最下面一层的结点(叶结叶结点点)都依次排列在该层从左至都依次排列在该层从左
6、至右的位置上。这样的二叉树为右的位置上。这样的二叉树为完全二叉树完全二叉树.2.完全二叉树完全二叉树第10页/共41页1.一棵非空二叉树的第一棵非空二叉树的第i 层最多有层最多有2i1个结点个结点(i 1)。三三.二叉树的性质二叉树的性质2.深度为深度为h 的非空二叉树最多有的非空二叉树最多有2h-1-1个结点个结点.3.若非空二叉树有若非空二叉树有n0个叶结点个叶结点,有有n2个度为个度为2的结点的结点,则则 n0=n2+1 4.具有具有n个结点的完全二叉树的深度个结点的完全二叉树的深度h=log2n+1.第11页/共41页 二叉树的存储结构二叉树的存储结构一一.二叉树的顺序存储结构二叉树的
7、顺序存储结构12345678910ABCDEFGHIJBT1:151 2 3 4 5 6 7 8 9 10 11 12 13 14 15A B C D E F G H I J 根据完全二叉树的性质根据完全二叉树的性质,对于深度为对于深度为h 的完全二叉树的完全二叉树,将树中所有结点的将树中所有结点的数据信息按照编号的顺序依次存储到一维数组数据信息按照编号的顺序依次存储到一维数组BT1:2h-1中中,由于编号与数组由于编号与数组的下标一一对应的下标一一对应,该数组就是该完全二叉树的顺序存储结构该数组就是该完全二叉树的顺序存储结构.1.完全二叉树的顺序存储结构完全二叉树的顺序存储结构第12页/共4
8、1页12345678910ABCDEFGHIJ111213BT1:151 2 3 4 5 6 7 8 9 10 11 12 13 14 15A B C D E F G H J IABCDEFGHIJ 2.一般二叉树的顺序存储结构一般二叉树的顺序存储结构第13页/共41页 对于一般二叉树对于一般二叉树,只须在二叉树中只须在二叉树中“添加添加”一些实际上一些实际上二叉树中并不存在的二叉树中并不存在的“虚结点虚结点”(可以认为这些结点的数据可以认为这些结点的数据信息为空信息为空),使其在形式上成为一棵使其在形式上成为一棵“完全二叉树完全二叉树”,然后然后按照完全二叉树的顺序存储结构的构造方法将所有结
9、点的数据信息依次存放按照完全二叉树的顺序存储结构的构造方法将所有结点的数据信息依次存放于数组于数组BT1:2h-1中。中。第14页/共41页二二.二叉树的链式存储结构二叉树的链式存储结构(二叉链表二叉链表)链结点的构造为链结点的构造为lchilddatarchild 其中其中,data 为数据域为数据域 lchild 与与rchild 分别为指向左、右子树的指针域分别为指向左、右子树的指针域.ABCDEFGIJABCDEFGJIT第15页/共41页6.3.3 二叉树的遍历二叉树的遍历第16页/共41页二二.前序遍历前序遍历第17页/共41页三三.中序遍历中序遍历第18页/共41页四四.后序遍历
10、后序遍历第19页/共41页ABCDKFGIJEH前序遍历序列前序遍历序列:A,B,D,K,J,G,C,F,I,E,H中序遍历序列中序遍历序列:D,B,G,J,K,A,F,I,E,C,H后序遍历序列后序遍历序列:D,G,J,K,B,E,I,F,H,C,A按层次遍历序列按层次遍历序列:A,B,C,D,K,F,H,J,I,G,E例例第20页/共41页6.3.2 6.3.2 线索二叉树线索二叉树1.1.何谓线索二叉树?何谓线索二叉树?遍历结果是求得结点的一个线性序列。指遍历结果是求得结点的一个线性序列。指向该线性序列向该线性序列“前驱前驱”和和“后继后继”的指针,称的指针,称“线索线索”;包含;包含“
11、线索线索”的存储结构,称为的存储结构,称为“线索链表线索链表”;与其相应的二叉树,称为;与其相应的二叉树,称为“线索线索二叉树二叉树”;对二叉树以某种次序遍历,使其变;对二叉树以某种次序遍历,使其变为线索二叉树的过程,称为为线索二叉树的过程,称为“线索化线索化”。第21页/共41页2.2.线索链表中结点的结构线索链表中结点的结构在二叉链表的结点结构中增加两个在二叉链表的结点结构中增加两个在二叉链表的结点结构中增加两个在二叉链表的结点结构中增加两个标志域标志域,并规定:并规定:并规定:并规定:lchildLTagdataRTag rchild其中:其中:LTag=LTag=0 lchild 0
12、lchild 域指示结点的左孩子域指示结点的左孩子1 lchild 1 lchild 域指示结点的前驱域指示结点的前驱RTag=RTag=0 rchild 0 rchild 域指示结点的右孩子域指示结点的右孩子1 rchild 1 rchild 域指示结点的后继域指示结点的后继第22页/共41页二叉树二叉线索存储表示二叉树二叉线索存储表示typedef enum Link,Thread PointerThr;typedef enum Link,Thread PointerThr;/Link=0:/Link=0:指针,指针,Thread=1:Thread=1:线索线索typedef struct
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构
限制150内