数据结构(五).pptVIP

  • 2
  • 0
  • 约7.08千字
  • 约 34页
  • 2017-02-08 发布于天津
  • 举报
数据结构(五)

数据结构(五) 常宝宝 北京大学计算机科学与技术系 chbb@pku.edu.cn 内容提要 树和森林 键树 图状结构介绍 什么是树? 树是n(n≥1)个结点的有限集合,且: (1)有且仅有一个特定的称为根的结点。 (2)当n1时,其余结点可分为m( m0)个互不相交的有限集T1, T2, …, Tm,其中每一个集合本身又是一棵树,并且称为根的子树。 有序树:树中结点的各个子树 从左至右有序。 无序树:树中结点的各个子树 从左至右无序。 树结构和线性表 树: 只有一个结点(根结点)无前趋。 存在多个结点(叶子结点)无后继。 其余结点有一个前趋和多个后继。 线性表 只有一个结点无前趋。 只有一个结点无后继。 其余结点有一个前趋和一个后继。 基本概念 有关树的基本概念:子结点、父结点、叶子结点、兄弟结点、分支结点、内部结点、结点的层数、树的高度、结点的度、树的度 树的度:树内各结点的度的最大值。 如:2 度树、3 度树 结点的祖先和子孙: 结点的祖先是从根结点到该结点所经路径上的所有结点。以某结点为根的子树中的任一结点都称为该结点的子孙。 二叉树和树 二度树是否是二叉树? 严格说来,二度树和二叉树是不同的。 当二度树中某结点含有一个子结点时,无左右之分。二叉树可以是空二叉树,但通常规定树不能为空。 森林 森林是m(m≥0)棵互不相交的树的集合。 对于一棵树而言,树中每个结点的所有子树即为一个森林,通常也称做结点的子树森林。 树 = 根结点 + 子树森林 森林 = 树的集合 树的实现 采用链式存储,对于一个m度树,每个结点设计m个指向子树的指针域。 采用这种存储方式,空间浪费严重。若一个m度树共含有n个结点,所有指针中空指针所占的比率为: 采用链式存储,为树中每个结点设计一个指针域,指向其父结点。 采用这种存储方式,没有空间浪费,可以很容易求得指定结点的父结点,但求得指定结点却很困难。 森林和二叉树 定理:令S是一个结点的有限集合。B是S上的二叉树的集合。F是S上所有森林的集合。则对于B中的任何一棵二叉树B,在F中必有唯一一个森林F与之对应,反之亦然。 如何从森林转换成二叉树? 如果F = {T1,T2,…,Tm}是森林,则可按照如下的规则将其转换成一棵二叉树B = (root, LB, RB)。 (1)若F为空,即m=0,则B为空。 (2)若F非空,即m≠0,则B的根root即为森林中第一棵树的根ROOT(T1);B的左子树LB是从T1中根节点的子树森林F1={T11,T12,…, T1m1}转换而成的二叉树;其右子树RB是从森林F={T2, T3, …, Tm}转换而成的二叉树。 二叉树和森林 如何从二叉树转换成森林? 如果B = (root, LB, RB)是一棵二叉树,则可按照如下规则转换成森林F = {T1,T2,…,Tm}。 (1)若B为空,则F为空。 (2)若B非空,则F中第一棵树T1的根ROOT(T1)即为二叉树的根root;T1中根结点的子树森林F1是由B的左子树LB转换而成的森林;F中除T1之外其余树组成的森林F={T2, T3, …, Tm}是由B的右子树RB转换而成的森林。 树或森林可以转换成二叉树的形式予以实现。 森林和二叉树的转换 森林中某结点的第一个子结点在二叉树中是该结点的左子结点。森林中某结点的下一个兄弟结点是二叉树中该结点的右子结点。 森林和二叉树的转换 结点实现 通常把树或森林转换成二叉树采用链式存储实现,此时,树中的结点可用C++作如下定义: 树的遍历 树的遍历方法 先根遍历 (1)访问树的根结点; (2)从左向右依次先根遍历根的每棵子树。 后根遍历 (1)从左向右依次后根遍历根的每棵子树; (2)访问树的根结点。 对于右面的树而言 先根遍历 ABEFLGHCIMNOPDJKQ 后根遍历 ELFGHBMNOPICJQKDA 森林的遍历 森林的遍历方法 先序遍历 若森林非空,则可按下述规则遍历 (1)访问森林中第一棵树的根结点; (2)先序遍历第一棵树中根结点的子树森林; (3)先序遍历除去第一棵树之后剩余的树构成的森林。 中序遍历 若森林非空,则可按下述规则遍历 (1)中序遍历第一棵树中根结点的子树森林; (1)访问森林中第一棵树的根结点; (3)中序遍历除去第一棵树之后剩余的树构成的森林。 森林的遍历 对于右面的森林 先序遍历 ABCDEFGIJKH 中序遍历 CDBAEIJKGHF 如何在用二叉树实现的树和森林中进行遍历? 树的先根遍历 ? 二叉树的先序遍历 树的后根遍历 ? 二叉树的中序遍历 森林的先序遍历 ? 二叉树的先序遍历 森林的中序遍历 ? 二叉树的中序遍历 树和森林的遍历 右面的二叉树由

文档评论(0)

1亿VIP精品文档

相关文档