二叉树复习ppt.ppt

二叉树复习ppt

第8周 树和二叉树 内容回顾 树的定义和基本术语 二叉树 遍历二叉树和线索二叉树 树和森林 哈夫曼树及其应用 树型结构是一类重要的非线性数据结构。 其中常见的是树和二叉树 树是以分支关系定义的层次结构 树结构在客观世界中广泛存在 人类社会的族谱 社会组织结构 在计算机领域 编译程序中表示源程序的语法结构 数据库中是信息的重要组织形式之一 操作系统中的进程管理 1 树的定义和基本术语 树(tree)是n(n≥0)个结点的有限集。 在任意一颗非空树中 有且仅有一个特定的称为根(root)的结点; 当n1时,其余结点可分为m(m0)个互不相交的有限集T1,T2,…,Tm,其中每一个集合本身又是一颗树,并且称为根的子树(SubTree)。 特点 没有结点的树称为空树 树中各子树是互不相交的 树的示例 抽象数据类型树的定义 ADT Tree{ 数据对象D:D是具有相同特性的数据元素的集合。 数据关系R:若D为空集,则称为空树 若D仅含一个数据元素,则R为空集,否则R={H},H是如下二元关系: (1)在D中存在唯一的称为根的数据元素root,它在关系H下无前驱; (2)若D-{root}≠Φ,则存在D-{root}的一个划分,D1,D2,…,Dm(m0),对任意j≠k(1≤j,k≤m)有Dj∩Dk=Φ,且对任意的i(1≤i≤m),唯一存在数据元素xi∈Di,有root,xi∈H。 (3)对应于D-{root}的划分,H-{root,x1,…,root,xm}有唯一的一个划分H1,H2,…,Hm(m0),对任意j≠k(1≤j,k≤m)有Dj∩Dk=Φ,且对任意的i(1≤i≤m),Hi是D上的二元关系,(Di,{Hi})是一颗符合本定义的树,称为根root的子树 基本操作 InitTree(T) DestroyTree(T) CreateTree(T,definition) ClearTree(T) TreeEmpty(T) TreeDepth(T); Root(T) Value(T,cur_e); Assign(T,cur_e,value) Parent(T,cur_e) LeftChild(T,cur_e) RightChild(T,cur_e) InsertTree(T,p,I,c) DeleteTree(T,p,i) TraverseTree(T,visit()) }//ADT Tree 基本术语 结点(node)——包括一个数据元素及若干指向其子树的分支 结点的度(degree)——结点拥有的子树数 叶子(leaf)或终端结点——度为0的结点 非终端结点或分支结点——度不为0的结点 内部结点——除根结点外的分支结点 树的度——树中各结点度的最大值 孩子(child)——结点的子树的根称为该结点的孩子 双亲(parents)——孩子结点的上层结点叫该结点的双亲 兄弟(sibling)——同一个双亲的孩子互为兄弟 祖先——从根结点到该结点所经分支上的所有结点 子孙——以某结点为根的子树中的任一结点称为根的子孙 结点的层次(level)——从根结点算起,根为第一层,它的孩子为第二层…… 堂兄弟——双亲在同一层的结点互为堂兄弟 深度(depth)或高度——树中结点的最大层次数 有序树——树中结点的子树从左到右是有序的 第一孩子——有序树中最左的子树的根 最后孩子——有序树中最右的子树的根 无序树——树中结点的子树没有前后次序 森林(forest)——m(m≥0)棵互不相交的树的集合 术语示例 2 二叉树(BinaryTree) 定义:二叉树是n(n≥0)个结点的有限集,它或为空树(n=0),或由一个根结点和两棵分别称为左子树和右子树的互不相交的二叉树构成 特点 每个结点至多有二棵子树(即不存在度大于2的结点) 二叉树的子树有左、右之分,且其次序不能任意颠倒 基本形态 抽象数据类型二叉树的定义 ADT BinaryTree{ 数据对象D:D是具有相同特性的数据元素的集合。 数据关系R: 若D为空集,则称为空树 若D仅含一个数据元素,则R为空集,否则R={H},H是如下二元关系: (1)在D中存在唯一的称为根的数据元素root,它在关系H下无前驱; (2)若D-{root}≠Φ,则存在D-{root}={Dl,Dr},且Dl∩Dr=Φ; (3)若Dl≠Φ,则D1中存在唯一的元素xl,root,xl∈H,且存在Dl上的关系Hl∈H; 若Dr≠Φ,则Dr中存在唯一的元素xr,root,xr∈H,且存在Dr上的关系Hr∈H; H={root,xl,root,xr,Hl,Hr}; (4)(Dl,{Hl})是一颗符

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档