1 / 15

(第八讲)

数据结构. (第八讲). 绍兴文理学院. 计算机系计算机应用教研室. 数据的一对多关系是怎样 描述 的?. 第 6 章 树和二叉树( 1 ). 一、教学目的: 明确树的概念、基本术语的含义和 树的抽象数据类型的定义;掌握树的表示方法 。. 二、教学重点: 树的概念、基本术语的含义、 树的表示方法和树的抽象数据类型的定义 。. 三、教学难点: 树的概念; 树的抽象数据类型的定义 。 四、教学过程:. §5.1 树的定义和基本术语. TKS. 4. 树形结构是一种重要的非线性结构,讨论的是层次和分支关系。 §5.1. 1 树的定义 1 、树的定义

Download Presentation

(第八讲)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 数据结构 (第八讲) 绍兴文理学院 计算机系计算机应用教研室

  2. 数据的一对多关系是怎样描述的?

  3. 第6章 树和二叉树(1) 一、教学目的:明确树的概念、基本术语的含义和树的抽象数据类型的定义;掌握树的表示方法。 二、教学重点:树的概念、基本术语的含义、树的表示方法和树的抽象数据类型的定义。 三、教学难点:树的概念;树的抽象数据类型的定义。 四、教学过程:

  4. §5.1 树的定义和基本术语 TKS 4 树形结构是一种重要的非线性结构,讨论的是层次和分支关系。 §5.1.1 树的定义 1、树的定义 树是n(n≥0)个结点的有限集,在任意一棵非空树中满足下面两个条件: (1) 有且仅有一个特定的称为根的结点; (2)当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1,T2, …,Tm,其中每个集合本身又是一棵树,并且称为根的子树。 树是递归定义的,在树的定义中又用到了树的概念。 11:07

  5. 2、图示 D J I A B F C G E K L M H A TKS 5 T={A, B, C, D, E, F, G, H, I, J,K,L,M} A是根,其余结点可以划分为3个互不相交的集合: T1={B, E, F,K,L}, T2={C, G}, T3={D, H, I, J,M} 这些集合中的每一集合都本身又是一棵树,它们是A的子树。 例如,对于 T1,B是根,其余结点可以划分为2个互不相交的集合:T11={E,K,L},T12={F},T11,T12是B的子树。 11:07

  6. 3、树的应用 J I A C D H B F E K L M G TKS 6 (1) 树可表示具有分支结构关系的对象 例1 家族族谱 设某家庭有13个成员A、B、C、D、E、F、G、H、I、J,K,L,M,他们之间的关系可用图所示的树表示: 11:07

  7. 2 单位行政机构的组织关系 TKS 7 局 科1 科2 科3 室1 室1 室2 室3 室1 室2 室3 室2 室3 人… 人… 人… 人… 人… 人… 人… 人… 人… 11:07

  8. (2) 树是常用的数据组织形式 C 文件夹1 文件夹n 文件1 文件2 文件夹11 文件夹12 文件11 文件12 TKS 8 有些应用中数据元素之间并不存在间分支结构关系,但是为了便于管理和使用数据,将它们用树的形式来组织。 例3 计算机的文件系统 不论是DOS文件系统还是window文件系统,所有的文件是用树的形式来组织的。 11:07

  9. 4、树的抽象数据类型定义 TKS 9 ADT Tree { 数据对象 D:D是具有相同特性的数据元素的集合。 数据关系 R:若D为空集,则称为空树;若D仅含一个数据元素, 则 R为空集,否则 R={H},H是如下二元关系: (1) 在D中存在唯一的称为根的数据元素root它在关系H下无前驱; (2)若D-{root}≠ф,则存在D-{root}的一个划分D1,D2,…,Dm, (m>0),对任意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(m>0),对任意j≠k(1≤j,k≤m) 有Hj∩Hk=ф,且对任意的i(1≤i≤m),Hi是Di上的二元关系, (Di,{Hi})是一棵符合本定义的树,称为根root的子树。 11:07

  10. 基本操作 P: TKS 10 initTree(&T); 操作结果:构造空树 T。 CreateTree(&T,definition); 初始条件:definition 给出树 T 的定义。 操作结果:按definition 构造树 T。 TreeDepth(T); 初始条件:树 T 存在。 操作结果:返回树 T 的深度。 Value(T,cur_e); 初始条件:树 T 存在,cur_e 是 T 中某个结点。 操作结果:返回 cur_e 的值。 Assign(T,cur_e,value); 初始条件:树 T 存在,cur_e 是 T 中某个结点。 操作结果:结点cur_e 赋值为 value。 11:07

  11. Parent(T,cur_e); TKS 11 初始条件:树 T 存在,cur_e 是 T 中某个结点。 操作结果:若 cur_e 是 T 的非根结点,则返回它的双亲,否 则函数值为空。 LeftChild(T,cur_e); 初始条件:树 T 存在,cur_e 是 T 中某个结点。 操作结果:若 cur_e 是 T 的非叶子结点,则返回它的最左孩 子,否则返回空。 RightSibling(T,cur_e); 初始条件:树 T 存在,cur_e 是 T 中某个结点。 操作结果:若 cur_e 有右兄弟,则返回它的右兄弟,否则函 数值为空。 TraverseTree(T,Visit()); 初始条件:树 T 存在,Visit 是对结点操作的应用函数。 操作结果:按某种次序对T的每个结点调用函数 Visit() 一次 且最多一次。一旦 Visit()失败,则操作失败。 11:07

  12. }ADT Tree C J A D H G I E K L M B F A B E K J L K L M F F C I G C D B G D A H M E I H J TKS 12 5、树的其他表示形式 (1) 嵌套集合 ③ 凹入表 (2) 广义表 (A(B(E(K,L),F),C(G),D(H(M),I,J))) 11:07

  13. §5.1.2树的基本术语 D J I A B G C F E K L M H TKS 13 (1) 结点(node):数据元素+若干指向其子树的分支; (2)结点的度(degree):结点拥有的子树(分支)数; (3) 树的度:树中所有结点的度的最大值; (4) 叶子(终端结点 leaf):度为0的结点; (5) 分支结点(非终端结点、内部结点):度不为0的结点; (6) 孩子(child):结点子树的根; (7) 双亲(parent):结点子树的根对该结点的称呼; (8)兄弟(sibling):同一双亲的孩子之间的称呼; (9) 祖先:根结点到该结点所经分枝上的所有结点; (10) 子孙:某结点为根的子树中的任一结点对该结点的称呼; 11:07

  14. (11)层次(level):从根结点开始定义.根为第一层,根的孩子为第二层,若某结点在第 L 层,则其子树的根就示第 L+1 层; TKS 14 (12) 堂兄弟:其双亲在同一层的结点; (13) 树的深度(高度 depth):树中结点的最大层次; (14) 有序树:各子树看成从左至右是有次序的(即不能互换); (15) 无序树:各子树从左至右是无序的(即能互换) ; (16) 森林(forest):m(m≥0)棵树互不相交的集合。 ▲树型结构和线性结构的对比 线性结构 树型结构 第一个数据元素(无前驱) 根结点(无前驱) 最后一个数据元素(无后继) 多个叶子结点(无后继) 其它数据元素(一个前驱、多个后继) 其它数据元素(一个前驱、一个后继) 11:07

  15. 五、作业: TKS 15 ? 上机编程: (数据结构编程练习)中 8831、8832、8833、 8836、8841 (已布置) 11:07

More Related