当前课程知识点:数据结构 >  第6章 树和二叉树 >  6.1 树的定义和基本术语 >  6.1 树的定义和基本术语

返回《数据结构》慕课在线视频课程列表

6.1 树的定义和基本术语在线视频

下一节:6.2 二叉树和二叉树的性质

返回《数据结构》慕课在线视频列表

6.1 树的定义和基本术语课程教案、知识点、字幕

同学们大家好,我是云南大学信息学院教师孔兵

这一章我们讨论树和二叉树

树形结构是一类非常重要的非线性结构

它的特点是结点之间有分支

并且有明显的层次关系

就形态上来说

有点类似于自然界中

倒着长的树

在很多现实问题中

都可以利用树来描述数据元素之间的关系

比如说常见的家谱

一个家族内部成员之间的关系表面上看是很复杂的

描述很困难

经过抽象,我们注意到

家族成员最核心的关系是父子关系

其它很多关系都被父子关系所蕴含

比如说,A是B的父亲,B是C的父亲

蕴含了A是C的爷爷这样的关系

A是B的父亲,A是C的父亲

蕴含了B和C是兄弟的关系

基于父子关系

可以建立描述一个家族成员之间父子关系的一个树形结构

行政组织机构中

成员之间最核心的关系是领导的关系

同样可以建立描述领导关系的一个树形结构

树形结构的特点是一个前驱

多个后继

家谱中,一个成员的双亲是唯一的

只有一个前驱,但是该成员可能有多个孩子

那么就是有多个后继

回忆一下线性结构

它的特点是一个前驱一个后继

从描述上看,线性结构是树结构的一种特殊情况

例如,如果一个家族每代都只有一个孩子

该家族的家谱就是一个线性结构

我们首先讨论一下

树的定义和本章当中要用到的基本术语

树是n个结点的有限集

在任意一颗非空的树中

有且仅有一个特定的我们称为根的结点

当n大于1的时候,也就是说树中除了根还有其它的结点

那么其余结点可以分成m个互不相交的有限集

T1,T2,....,Tm。其中每个有限集本身又是一棵树

并且称为根的子树

从树的定义,我们注意到

定义树这个概念的时候

又用到了子树的概念

这是一个明显的递归的定义

下面我们结合图示看一下

图中有2课树,上面一棵树是只有根结点的树

也就是树中只有一个结点

下面这棵树,A是树根

其余结点分为3个互不相交的有限集

这三个有限集就是3棵子树

3颗子树的根是B, C, D

这样的递归定义可以继续下去

例如D为为根的这棵子树,有三棵子树

树根A和子树根B,C,D之间是前驱和后继的关系

A是B,C, D的前驱,B,C, D是A的后继

A有3个后继

从图中可以看出,树结构明显的一个前驱

多个后继的关系

例如,D有一个唯一的前驱A

D有三个后继H, I, J

通过观察可以看到

树有明显的层次关系

例子当中,A可以看作一层

B,C, D可以看做一层

同样可以看出下面还有两层

图示中是树结构的图形表示

这里关系用一条线表示

实际上关系同样的有向的

我们同样可以用形式化的方式描述树结构

树的数据结构也是用两个集合来描述

描述数据元素的集合D

描述数据元素之间关系的集合R

如图所示,元素的集合D中

有A,B,到m这些树中的元素

元素之间的关系仍然用有序对来描述

在关系集R中

我们用有序对描述了这棵树当中所有的前驱和后继的关系

例如,前三个有序对描述了

A有三个后继B,C, D

对应的B,C, D有一个共同前驱A

根A是没有前驱的,它是比较特殊的一个点

其它所有结点都有唯一的前驱

下面看一下树的抽象数据类型定义

仍然是用三个集合定义抽象数据类型

数据元素集和关系集前面已经说过

这里不重复了

树的基本操作集中

包含很多基本操作

同学们可要参看教材

这里简单的列举了3个

第1个基本操作是求树的深度

第2个基本操作是求树中某一个结点的双亲

最后一个是对树的遍历操作

下面我们介绍一下本章中的一些基本的术语

结点,结点是包含一个数据元素及若干指向其子树的分支

在树中,我们把每个数据元素看成为一个结点

并利用所谓的分支描述结点之间前驱和后继的关系

结点的度,指的是一个结点拥有的子树的树目

树中每个结点都有一个度

比如图中,A的度是3

它有B,C, D为根的三棵子树

B结点的度为2,它有两棵子树

F的度为0,它没有子树

基于结点度的概念,定义了叶子或终端结点

我们把度为零的结点称为叶子或终端结点

图中的树有L,F,G,M,I,J六个叶子结点。

度不为零的结点,也就是有后继的结点

我们称为非终端结点,或者叫分支结点

树的度是指树中各结点的度的最大值

就这个示例的树来说

各结点度的最大值是3

那么这棵树的度就是3

孩子和双亲

是树中前驱和后继结点对应的一个叫法

结点子树的根,称为该结点的孩子

比如说,A有孩子B,B是A的后继

对应的该结点,就称为孩子的双亲

A有孩子B

那么对应的A称为B的双亲

一个结点的双亲,实际上就是它的前驱

树中每个结点的前驱是唯一的

兄弟,同一双亲的孩子之间,称为兄弟

比如H,I,J就是兄弟,它们有共同的双亲D

祖先和子孙

一个结点的祖先是从根到该结点所经分支上的所有结点

以结点L为例

从根结点A开始到L

所经分支的结点有A,B,E

那么,A,B,E都称为L的祖先

反之,以某结点为根的子树中的任一结点

都称为该结点的子孙

比如对A结点来说

其余所有结点都是它的子孙

而对C结点来说,它只有一个子孙G

层次,树是有明显的层次结构的

结点的层次从根开始定义

根为第1层,根的孩子为第2层

以此类推

示例中的这棵树有4层

堂兄弟

其双亲在同一层的结点

互为堂兄弟

如图中F,G,H这三个结点

它们的双亲,B,C, D在同一层

所以它们三个互为堂兄弟

深度是树中结点的最大层次

图中,树的最大层次是4

所以这个树的深度为4

森林是m棵互不相交的树的集合

示例中,有三棵树

这三棵树构成了所谓的森林

有序树和无序树

树中结点的各子树

如果能看成从左至右是有次序的

它们的位置不能互换

则称该树为有序树

否则该树为无序树

一棵树是否有序,主要和它描述的问题背景有关

例如,描述的如果是家谱

那么应该是有序树

因为,同一双亲的孩子之间

可能隐含着长幼之序

这样的子树位置是不能互换的

好同学们,今天这节课就讲到这里

下次课再见。

数据结构课程列表:

前言

-1.算法概念导入

--1.1 算法概念导入

-2.数据结构课程介绍

--2.数据结构课程介绍

-数据结构前言PPT

第0章 预备知识

-0.1变量、类型和表达式

--0.1变量、类型和表达式

-0.2 函数

--0.2 函数

-0.3 指针和单链表

--0.3 指针和单链表

-0.4 数组、指向函数的指针

--0.4 数组、指向函数的指针

-第0章 预备知识讨论题

-数据结构第0章预备知识PPT

第1章 绪论

-1.1什么是数据结构

--1.1什么是数据结构

--测试题

-1.2基本概念和术语

--1.2基本概念和术语

--测试题

-1.3数据结构的描述

--1.3数据结构的描述

--测试题

-1.4抽象数据类型的定义和实现

--1.4抽象数据类型的定义和实现

--测试题

-1.5算法和算法分析概念

--1.5算法和算法分析概念

--测试题

-1.6算法分析示例

--1.6算法分析示例

--测试题

-第1章 绪论讨论题

-数据结构第1章 绪论PPT

第2章 线性表

-2.1 线性表的类型定义

--2.1线性表的类型定义

--测试题

-2.2线性表的顺序表示和实现

--2.2 线性表的顺序表示和实现

--测试题

-2.3 线性链表

--2.3 线性链表

--测试题

-2.4 静态链表

--2.4 静态链表

--测试题

-2.5 循环链表和双向链表

--2.5 循环链表和双向链表

--测试题

-第2章 线性表讨论题

-数据结构第2章线性表PPT

第3章 栈和队列

-3.1 栈

--3.1栈

--测试题

-3.2 栈的实现

--3.2 栈的实现

--测试题

-3.3 栈的应用

--3.3 栈的应用

-3.4 栈与递归的实现

--3.4栈与递归的实现

--测试题

-3.5 队列和链队列

--3.5 队列和链队列

--测试题

-3.6 循环队列

--3.6 循环队列

--测试题

-第3章 栈和队列讨论题

-数据结构第3章栈和队列PPT

第4章 串

-4.1 串

--4.1 串

--测试题

-数据结构第4章 串PPT

第5章 数组

-5.1 数组定义和表示

--5.1 数组定义和表示

--测试题

-5.2矩阵的压缩存储

--5.2 矩阵的压缩存储

--测试题

-第5章 数组讨论题

-数据结构第5章数组PPT

第6章 树和二叉树

-6.1 树的定义和基本术语

--6.1 树的定义和基本术语

-6.2 二叉树和二叉树的性质

--6.2 二叉树和二叉树的性质

--测试题

-6.3 二叉树的存储结构

--6.3二叉树的存储结构

--测试题

-6.4 遍历二叉树

--6.4 遍历二叉树(1)

--6.4 遍历二叉树(2)

--测试题

-6.5 线索二叉树

--6.5 线索二叉树

--测试题

-6.6 树的存储

--6.6树的存储

-6.7 树的转换和遍历

--6.7 树的转换和遍历

--测试题

-6.8 赫夫曼树

--6.8 赫夫曼树

-6.9 赫夫曼编码

--6.9 赫夫曼编码

--测试题

-第6章 树和二叉树讨论题

-数据结构第6章树和二叉树PPT

第7章 图

-7.1 图的定义和术语

--7.1.1图的定义和术语(1)

--7.1.2图的定义和术语(2)

--测试题

-7.2 图的存储结构

--7.2.1 数组表示法(1)

--7.2.2 数组表示法(2)

--7.2.3 邻接表

--测试题

-7.3 图的遍历

--7.3.1 深度优先搜索

--7.3.2 广度优先搜索

--测试题

-7.4 最小生成树

--7.4.1 普里姆算法

--7.4.2 克鲁斯卡尔算法

--测试题

-7.5 有向无环图

--7.5.1 拓扑排序

--7.5.2 关键路径

--测试题

-7.6 最短路径

--7.6.1 单源最短路径-迪杰斯特拉算法

--7.6.2 每一对顶点之间的最短路径-弗洛伊德算法

--测试题

-第7章 图讨论题

-数据结构第7章图PPT

第8章 查找

-8.1 查找基本概念和顺序查找

--8.1 查找基本概念及顺序查找

--测试题

-8.2 有序表的查找

--8.2 有序表的查找

--测试题

-8.3 二叉排序树

--8.3.1 二叉排序树(1)

--8.3.2 二叉排序树(2)

--测试题

-8.4 平衡二叉树

--8.4 平衡二叉树

--测试题

-8.5 哈希表

--8.5.1 哈希表及哈希函数的构造

--8.5.2 解决冲突的方法

--8.5.3 哈希表的查找和性能分析

--测试题

-第8章 查找讨论题

-数据结构第8章查找PPT

第9章 内部排序

-9.1插入排序

--9.1.1 插入排序(1)

--9.1.2 插入排序(2)

--测试题

-9.2 希尔排序

--9.2 希尔排序

--测试题

-9.3 快速排序

--9.3 快速排序

--测试题

-9.4 选择排序

--9.4 选择排序

--测试题

-9.5 堆排序

--9.5 堆排序

--测试题

-9.6 归并排序

--9.6 归并排序

--测试题

-9.7 基数排序

--9.7 基数排序

--测试题

-9.8 排序方法总结

--9.8 排序方法总结

-第9章 内部排序讨论题

-数据结构第9章内部排序PPT

6.1 树的定义和基本术语笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。