没有合适的资源?快使用搜索试试~ 我知道了~
树与二叉树(c++)
资源推荐
资源详情
资源评论
第一二节 树及二叉树
简介
树是一种非线性的数据结构,用它能很好地描述有分支和层次特
性的数据集合。树型结构在现实世界中广泛存在,如社会组织机构的
组织关系图就可以用树型结构来表示。树在计算机领域中也有广泛应
用,如在编译系统中,用树表示源程序的语法结构。在数据库系统中
,树型结构是数据库层次模型的基础,也是各种索引和目录的主要组
织形式。在许多算法中,常用树型结构描述问题的求解过程、所有解
的状态和求解的对策等。在这些年的国内、国际信息学奥赛、大学生
程序设计比赛等竞赛中,树型结构成为参赛者必备的知识之一,尤其
是建立在树型结构基础之上的搜索算法。
在树型结构中,二叉树是最常用的结构,它的分支个数确定、又
可以为空、并有良好的递归特性,特别适宜于程序设计,因此也常常
将一般树转换成二叉树进行处理。
第一节 树的概念----树的定义
一棵树是由n(n>0)个元素组成的有限集合,其中:
(1)每个元素称为结点(node);
(2)有一个特定的结点,称为根结点或树根(root);
(3)除根结点外,其余结点能分成m(m>=0)个互不相交的有限集合
T
0
,T
1
,T
2
,……T
m-1
。其中的每个子集又都是一棵树,这些集合称为这
棵树的子树。
如下图是一棵典型的树:
树的基本概念
A. 树是递归定义的;
B. 一棵树中至少有1个结点。这个结点就是根结点,它没有前驱,其余
每个结点都有唯一的一个前驱结点。每个结点可以有0或多个后继结
点。因此树虽然是非线性结构,但也是有序结构。至于前驱后继结点
是哪个,还要看树的遍历方法,我们将在后面讨论;
C. 一个结点的子树个数,称为这个结点的度(degree,结点1的度为3,
结点3的度为0);度为0的结点称为叶结点(树叶leaf,如结点3、5
、6、8、9);度不为0的结点称为分支结点(如结点1、2、4、7);
根以外的分支结点又称为内部结点(结点2、4、7);树中各结点的
度的最大值称为这棵树的度(这棵树的度为3)。
D. 在用图形表示的树型结构中,对两个用线段(称为树枝)连接的相关
联的结点,称上端结点为下端结点的父结点,称下端结点为上端结点
的子结点。称同一个父结点的多个子结点为兄弟结点。如结点1是结
点2、3、4的父结点,结点 2、3、4是结点1的子结点,它们又是兄弟
结点,同时结点2又是结点5、6的父结点。称从根结点到某个子结点
所经过的所有结点为这个子结点的祖先。如结点1、4、7是结点8
的祖先。称以某个结点为根的子树中的任一结点都是该结点的子孙。
如结点7、8、9都是结点4的子孙。
E.定义一棵树的根结点的层次(level)为0,其它结点的层次等于它的
父结点层次加1。如结点2、3、4的层次为1,结点5、6、7的层次为2
,结点8、9的层次为3。一棵树中所有的结点的层次的最大值称为树
的深度(depth)。如这棵树的深度为3。
F.对于树中任意两个不同的结点,如果从一个结点出发,自上而下沿着
树中连着结点的线段能到达另一结点,称它们之间存在着一条路径。
可用路径所经过的结点序列表示路径,路径的长度等于路径上的结点
个数减1。如上图中,结点1和结点8之间存在着一条路径,并可用(1
、4、7、8)表示这条路径,该条路径的长度为3。注意,不同子树上
的结点之间不存在路径,从根结点出发,到树中的其余结点一定存在
着一条路径。
G.森林(forest)是m(m>=0)棵互不相交的树的集合。
剩余71页未读,继续阅读
资源评论
守“二叉树”待兔
- 粉丝: 140
- 资源: 79
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功