毕业论文
计算机论文
经济论文
生物论文
数学论文
物理论文
机械论文
新闻传播论文
音乐舞蹈论文
法学论文
文学论文
材料科学
英语论文
日语论文
化学论文
自动化
管理论文
艺术论文
会计论文
土木工程
电子通信
食品科学
教学论文
医学论文
体育论文
论文下载
研究现状
任务书
开题报告
外文文献翻译
文献综述
范文
C#虚拟二叉树图形化程序设计(3)
(9) 层数、堂兄弟:从根结点开始定义,根为第一层,根的孩子为第二层。其余结点的层数为双亲结点的层数加1.双亲在同一层上的结点互为堂兄弟。
(10)树的深度:树的结点中的最大层数称为树的深度
(11)有序树和无序树:如果树中结点的各子树从左至右是有次序的(即不能互换),则称为树为有序树,否则为无序树
(12)森林:有限树的集合
2.2 二叉树
二叉树是一种特殊的树,它是树形结构的一个重要类型。它结构简单,存储效率高,算法也相对简单,因此在讨论一般树的存储结构及操作之前,首先研究二叉树这种抽象数据类型。
2.2.1 二叉树的定义
(1) 二叉树
其特点是每个节点至多有两棵子树(即二叉树不存在度大于2),并且二叉树的子树有左右之分,其次序不能任意颠倒,即如果将其左右子树颠倒,就成为另一棵不同的二叉树。即使树中结点只有一棵子树,也要区分它是左子树还是右子树。因此二叉树具有五种形态:(a)空二叉树;(b)仅有根结点的二叉树;(c)右子树为空的二叉树;(d)左子树为空的二叉树;(e)左、右子树均为非空的二叉树。
(2) 满二叉树
在一棵二叉树中,如果所有分支结点都同时具有左孩子和右孩子,并且所有叶子结点都在同一层上。这种树的特点是每层上的结点数是最大结点数。如图1.2(a)是一棵满二叉树,图1.2(b)则不是满二叉树,因为虽然所有非叶子结点都有左右孩子,但其叶子结点不在同一层上。
(3) 完全二叉树
只允许树的最后一层出现空结点,且最下层的叶子结点集中在树的左部。显然,一颗满二叉树必定是一棵完全二叉树,而完全二叉树未必是满二叉树。若对完全二叉树每个结点自上而下、从左到右顺序编号,则序号为K的任一结点,其非空左、右子结点序号必为2K和2K+1(如图1.2(b))。
(a) 满二叉树
(b)完全二叉树
(c) 非完全二叉树
图1.2 满二叉树和完全二叉树
2.2.2 二叉树的存储结构
二叉树的存储结构可分为两种:顺序存储结构和链式存储结构。
(1)顺序存储结构:把一个满二叉树自上而下、从左到右顺序编号,并把编号依次存放在数组内,棵得到图1.3(a)所示的结果。设满二叉树结点在数组中的索引号为i,那么有如下性质。
如果i=0,此结点为根结点,无双亲。
如果i>0,则其双亲结点为(i-1)/2。(除法为整除)结点i的左孩子为2i+1,右孩子为2i+2。
如果i>0,当i为奇数十,它是双亲结点的左孩子,它的兄弟为i+1;当i为偶数时,它是双亲结点的右孩子,它的兄弟结点为i-1。
深度为K的满二叉树需要长度为 的数组进行存储。
通过以上性质可知,使用数组存放满二叉树的各结点非常方便,可以根据一个结点的索引号很容易地推算出它的双亲、孩子、兄弟等结点的编号,从而对这些结点进行访问,这是一种存储满二叉树或完全二叉树的最简单、最省空间的做法。
为了用结点在数组中的位置反映出结点之间的逻辑关系,存储一般二叉树时,只需要将数组中空结点所对应的位置设为空即可,其效果如图1.3(b)所示。这会造成一定的空间浪费,但如果空结点的数量不是很多,这些浪费可以忽略。
共4页:
上一页
1
2
3
4
下一页
上一篇:
《协议分析与测试》课程考试系统设计与实现
下一篇:
C#公司销售薪资系统设计+需求分析+ER图
python基于决策树算法的球赛预测
虚拟制造技术的相關概念及其應用【1280字】
现代虚拟制造技术及應用前景分析【1935字】
茬虚拟现实系统构建過程中使用3DS【2284字】
网络虚拟实验室体系结构研究【1450字】
利用虚拟现实技术构建动...
OpenCV虚拟戒指佩戴算法实现
承德市事业单位档案管理...
国内外图像分割技术研究现状
神经外科重症监护病房患...
医院财务风险因素分析及管理措施【2367字】
中国学术生态细节考察《...
10万元能开儿童乐园吗,我...
AT89C52单片机的超声波测距...
C#学校科研管理系统的设计
志愿者活动的调查问卷表
公寓空调设计任务书