《数据结构》课程教学资源(PPT课件讲稿)第五章 树

第五章树 树和森林的概念 二叉树 二叉树遍历 线索化二叉树 树与森林 堆 Huffman树
第五章 树 • 树和森林的概念 • 二叉树 • 二叉树遍历 • 线索化二叉树 • 树与森林 • 堆• Huffman树 1

树和森林的概念 有根树: ◆一棵有根树T,简称为树,它是n(n≥0)个结点 的有限集合。当n=0时,T称为空树;否则,T 是非空树。记作 =0 T Ir, I, I3.Tm 3, n>0 ◆r是一个特定的称为根(root)的结点,它只有直 接后继,没有直接前驱 ◆根以外的其他结点划分为m(m≥0)个互不相交 的有限集合T,T2,…,Tm,每个集合又是一棵树, 并且称为根的子树
树和森林的概念 • 有根树: ◆ 一棵有根树T,简称为树,它是n (n ≥ 0) 个结点 的有限集合。当n = 0时,T 称为空树;否则,T 是非空树。记作 ◆ r 是一个特定的称为根 (root) 的结点,它只有直 接后继,没有直接前驱 ◆ 根以外的其他结点划分为 m (m 0) 个互不相交 的有限集合T1 , T2 , …, Tm,每个集合又是一棵树, 并且称为根的子树 = = 0 0 r,T ,T ,...,T , n , n T 1 2 m { } Φ 2

◆每棵子树的根结点有且仅有一个直接前驱 但可以有0个或多个直接后继 B C E@④ K(L
◆ 每棵子树的根结点有且仅有一个直接前驱, 但可以有0个或多个直接后继 3 D A B C E F G H I J K L M

树的基本术语 子女:若结点的子树非空,结点子树的根即 为该结点的子女。 双亲(父亲):若结点有子女,该结点是子 女的双亲(父亲)。 兄弟:同一结点的子女互称为兄弟 度:结点的子女个数即为该结点的度;树中 各个结点的度的最大值称为树的度
树的基本术语 • 子女:若结点的子树非空,结点子树的根即 为该结点的子女。 • 双亲(父亲):若结点有子女,该结点是子 女的双亲(父亲)。 • 兄弟:同一结点的子女互称为兄弟。 • 度:结点的子女个数即为该结点的度;树中 各个结点的度的最大值称为树的度。 4

分支结点:度不为0的结点即为分支结点, 亦称为非终端结点。 叶结点:度为0的结点即为叶结点,亦称为 终端结点。 祖先:根结点到该结点的路径上的各个结点 都是该结点的祖先。 子孙:某结点的所有下属结点,都是该结点 的子孙
• 分支结点:度不为0的结点即为分支结点, 亦称为非终端结点。 • 叶结点:度为0的结点即为叶结点,亦称为 终端结点。 • 祖先:根结点到该结点的路径上的各个结点 都是该结点的祖先。 • 子孙:某结点的所有下属结点,都是该结点 的子孙。 5

结点的层次:规定根结点在第一层,其子女 结点的层次等于它的层次加一。以下类推。 结点的深度:结点的深度即为结点的层次; 离根最远结点的层次即为树的深度。 A l层 B)(C①D 2层 depth height E)(F)(G)(H 3层 K( M 4层
• 结点的层次:规定根结点在第一层,其子女 结点的层次等于它的层次加一。以下类推。 • 结点的深度:结点的深度即为结点的层次; 离根最远结点的层次即为树的深度。 1层 2层 4层 3层 depth = 4 D A B C E F G H I J K L M height = 4 6

结点的高度:规定叶结点的高度为1,其双亲结 点的高度等于它的高度加一 树的高度:等于根结点的高度,即根结点所有 子女高度的最大值加一。 有序树:树中结点的各棵子树T1,T2,,是有次 序的,即为有序树。 无序树:树中结点的各棵子树之间的次序是不 重要的,可以互相交换位置。 森林:森林是m(m0)棵树的集合
• 结点的高度:规定叶结点的高度为1,其双亲结 点的高度等于它的高度加一。 • 树的高度:等于根结点的高度,即根结点所有 子女高度的最大值加一。 • 有序树:树中结点的各棵子树 T1 , T2 , …是有次 序的,即为有序树。 • 无序树:树中结点的各棵子树之间的次序是不 重要的,可以互相交换位置。 • 森林:森林是m(m≥0)棵树的集合。 7

树的抽象数据类型 template class tree i /对象:树是由mC>0)个结点组成的有限集合。在 类界面中的 position是树中结点的地址。在顺序 /存储方式下是下标型,在链表存储方式下是指针 /型。T是树结点中存放数据的类型,要求所有结 ∥点的数据类型都是一致的。 ublic: p Tree o; cTree o
树的抽象数据类型 template class Tree { //对象: 树是由n (≥0) 个结点组成的有限集合。在 //类界面中的 position 是树中结点的地址。在顺序 //存储方式下是下标型, 在链表存储方式下是指针 //型。T 是树结点中存放数据的类型, 要求所有结 //点的数据类型都是一致的。 public: Tree (); ~Tree (); 8

Buildroot(const T& value); ∥/建立树的根结点 position FirstChild(position p) ∥)回p第一个子女地址,天子女返回0 position NextSib ing(position p ∥回p下一兄弟地址,若天下一兄弟返回0 position Parent(position p); 回p双亲结点地址,若p为根返回0 T GetData(position p) ∥回结点卩中存放的值 bool InsertChild(position p, t& value); 在结点p下插入值为 value的新子女,若插 /失败。函数返回fale,否则返回true
BuildRoot (const T& value); //建立树的根结点 position FirstChild(position p); //返回 p 第一个子女地址, 无子女返回 0 position NextSibling(position p); //返回 p 下一兄弟地址, 若无下一兄弟返回 0 position Parent(position p); //返回 p 双亲结点地址, 若 p 为根返回 0 T GetData(position p); //返回结点 p 中存放的值 bool InsertChild(position p, T& value); //在结点 p 下插入值为 value 的新子女, 若插 //入失败, 函数返回false, 否则返回true 9

bool Delete Child(position p, int i ∥除结点p的第i个子女及其全部子孙结 ∥点,若删除失败,则返回 false,否则返回true void Delete Sub Tree(position t) /删除以t为根结点的子树 bool Isempty o /判树空否若空则返回true.否则返回 false void Traversal (void (visit)(position p)) ∥遍历以p为根的子树
bool DeleteChild (position p, int i); //删除结点 p 的第 i 个子女及其全部子孙结 //点, 若删除失败, 则返回false, 否则返回true void DeleteSubTree (position t); //删除以 t 为根结点的子树 bool IsEmpty (); //判树空否, 若空则返回true, 否则返回false void Traversal (void (*visit)(position p)); //遍历以 p 为根的子树 }; 10
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《Computer Networking:A Top Down Approach》英文教材教学资源(PPT课件讲稿,6th edition)Chapter 2 Application Layer.ppt
- 中国科学技术大学:A Practical Verification Framework for Preemptive OS Kernels(PPT讲稿).ppt
- 《算法设计与分析基础》课程教学课件(PPT讲稿)Chapter 2 Fundamentals of the Analysis of Algorithm Efficiency.ppt
- 中国医科大学:《计算机基础》课程教学资源(PPT课件)第8章 Internet应用基础.ppt
- RDA Testing & Comparison with AACR2(session 1).ppt
- 《Computer Networking:A Top Down Approach》英文教材教学资源(PPT课件讲稿,6th edition)Chapter 2 Application Layer.ppt
- 《计算机网络》课程电子教案(PPT教学课件)第二章 物理层.pptx
- 同济大学:企业电子商务系统(PPT讲稿)Enterprise Electronic Business Systems.ppt
- 分布式数据库(PPT课件讲稿)Distributed DBMS Architecture.ppt
- 计算机网络 The Network Layer(PPT课件讲稿)网络互联、Internet上的网络层.ppt
- 《编码理论》课程电子教案(PPT课件讲稿)第二章 信息量和熵.ppt
- 《编译原理》课程教学资源(PPT课件讲稿)代码优化——全局数据流分析技术.ppt
- 网络应用软件(PPT课件讲稿)第一讲 客户-服务器概念、协议端口的使用、套接字API.ppt
- 西安电子科技大学:《微机原理与接口技术》课程教学资源(PPT课件讲稿)第一章 数制与码制(主讲:王晓甜).pptx
- 大连工业大学:《计算机文化与软件基础》课程教学资源(PPT课件讲稿)绪论、计算机系统的组成、计算机中数的表示.pps
- 中国科学技术大学:《计算机体系结构》课程教学资源(PPT课件讲稿)第4章 存储层次结构设计.pptx
- 中国科学技术大学:《数据结构及其算法》课程电子教案(PPT课件讲稿)第七章 图.pps
- 《计算机视觉》课程教学资源(PPT课件讲稿)基于灭点几何的深度图重建、基于焦点变换的深度图重建.ppt
- 《计算机网络》课程教学资源(PPT课件讲稿)第2章 物理层.ppt
- 中国科学技术大学:《计算机体系结构》课程教学资源(PPT课件讲稿)第三章 流水线技术.ppt
- 《Computer Networking:A Top Down Approach》英文教材教学资源(PPT课件讲稿,6th edition)Chapter 1 Introduction.ppt
- 《数据结构 Data Structure》课程教学资源(PPT课件讲稿)第四章 数组、串与广义表.ppt
- 中国科学技术大学:《现代密码学理论与实践》课程教学资源(PPT课件讲稿)第10章 密钥管理与其他公钥体制.pptx
- 中国科学技术大学:《算法基础》课程教学资源(PPT课件讲稿)第四讲 递归和分治策略(主讲人:吕敏).pptx
- 中国科学技术大学:《数值分析》课程教学资源(PPT课件讲稿)第1章 插值.ppt
- 《网络算法学》课程教学资源(PPT课件讲稿)第二部分 端节点算法学 第五章 拷贝数据.ppt
- 中国科学技术大学:《计算机体系结构》课程教学资源(PPT课件讲稿)第三章 流水线技术.pptx
- 北京航空航天大学:动态拼车服务中的高效插入操作(PPT讲稿)An Efficient Insertion Operator in Dynamic Ridesharing Services.pptx
- 西安电子科技大学:《计算机网络 Computer Networks》课程教学资源(PPT课件讲稿)第一章 概述(主讲:马涛).pptx
- 计算机语言的学科形态与发展历程(PPT课件讲稿).ppt
- 西安电子科技大学:《计算机网络 Computer Networks》课程教学资源(PPT课件讲稿)概述(主讲:岳鹏).ppt
- 南京航空航天大学:《C++》课程电子教案(PPT课件讲稿)第4章 类的高级部分.ppt
- 《神经网络和模糊系统》课程教学资源(PPT讲稿)第四章 突触动力学、非监督学习.ppt
- 《Computer Networking:A Top Down Approach》英文教材教学资源(PPT课件讲稿,4th edition)Chapter 1 Introduction.ppt
- 清华大学:不确定型决策(PPT讲稿)Decision Making under Uncertainty.pptx
- 西安电子科技大学:《计算机网络 Computer Networks》课程教学资源(PPT课件讲稿)第五章 传输层.pptx
- 《机器学习》课程教学资源(PPT课件讲稿)第七章 贝叶斯分类器 MACHINE LEARNING.pptx
- 清华大学:计算机科学与技术(PPT讲稿)组播 Multicast.pptx
- 《网络算法学》课程教学资源(PPT课件讲稿)第四章 原则的运用.ppt
- 《电子商务概论》课程教学资源(PPT课件讲稿)第7章 电子商务与物流.ppt