AVL树算法的动态演示的设计与实现
毕业论文3.95K
摘 要 《数据结构》是计算机学科中一门十分重要的核心课程,对算法的深入理解是学好该课程的关键。为了使学生更好地理解算法,作为对课堂教学的有益补充,我们设计开发了《AVL树算法的动态演示》课件,以帮助学生理解数据结构算法。本文通过对这种交互式动态演示的设计实现过程的详细描述,着重讨论了AVL树动态演示的算法实现。 关键字 AVL树;动态演示;Java Applet
1 引言
《数据结构》是计算机学科中一门十分重要的核心课程,而对于算法的深入理解则是学好该课程的关键。本文讨论的AVL树算法的动态演示除了考虑怎样实现在网上传输外,更重要的是要考虑如何将抽象的算法形象生动的再现给学生,帮助他们更加透彻的理解算法的来龙去脉。 现成的教学课件大多数是用Authorware、PowerPoint等工具开发的,它们具有开发简单、界面友好等优点,但由于占用存储空间很大,不适合在网上传输。而用Java语言编写的小应用程序(Java Applet) 不仅可以具有很强的交互性,还可以嵌入Web页中,在网上传输,从而实现真正的网络课件。2 设计与实现
平衡二叉树(balanced binary tree或height-balanced tree)又称AVL树。它或者是一棵空树,或者是一棵具有下列性质的二叉树:它的.左子树和右子树都是平衡二叉树,且左子树和右子树的深度之差的绝对值不超过1。 为了研究平衡二叉树的特点,我们假设二叉排序树总是由于插入或删除结点才“失去平衡”的,现在我们只需研究在一个平衡二叉树中插入或删除一个结点后的变化情况,以及如果这种变化引起二叉排序树“不平衡”,怎样进行调整,使其成为平衡二叉树。 由上述分析,我们只要对二叉排序树的插入和删除算法做一些修改,即可实现平衡二叉树的插入和删除。 在设计该算法的动态演示的过程中,我们得到了如下的定理: 定理:在平衡树上插入和删除一个结点后,可能会导致二叉排序树不平衡,通过计算结点的平衡因子,如果判断出二叉排序树已经失去平衡,此时,总能找到这样一个惟一的结点a,它满足: (1)它是失去平衡的最小子树的根结点。 (2)将以它为根的子树调整平衡后,整棵树即是平衡树。3 平衡二叉树的插入算法的实现
我们知道,一般情况下,假设由于在二叉排序树上插入结点而失去平衡的最小子树的根结点指针为a(即a是离插入结点最近,且平衡因子绝对值超过1的祖先结点),则失去平衡后进行调整的规律可归纳为四种情况:①LL型平衡旋转;②RR型平衡旋转;③LR型平衡旋转;④RL型平衡旋转。 由于我们已经有了二叉排序树的插入算法,为了得到平衡二叉树的插入算法,我们可以在这个算法的基础上做以下三点修改: (1)判别插入结点之后是否产生不平衡。 (2)找到失去平衡的最小子树。 (3)判别旋转类型并作相应处理。 部分代码如下:if(((LabelledPoint) (node))e-
探讨计划免疫工作中如何更好地履行宣教与查对制度
【关键词】计划免疫宣教讲座查对制度计划免疫工作是是根据疫情监测和人群免疫状况分析,按照规定的免疫程序,有计划地利用疫苗进行免疫接种,以提高人群免疫力,达到控制乃至最终消除一些相应传染病的根本措施。随着国家扩大免疫规划的实施,扩大免疫规划取得了很大的成...
-
数字电视发射机技术原理与发展趋势
随着社会的快速发展,各项技术也在迅猛发展。以下是小编为大家推荐的相关论文范文,希望能帮到大家,更多精彩内容可浏览()。摘要:随着社会的快速发展,数字技术也在不断发展,人们的生活品质也在不断提高,更好的满足了人们的精神需求。当然,数字电视发射机技术的应用在给广...
-
房地产项目经济敏感性分析方法
在经济数学中弹性分析有着很重要的经济学意义,能够直接延伸到房地产项目经济评价敏感性分析的领域中,那么,房地产项目经济敏感性如何分析呢?1敏感分析方法1.1敏感性分析的定义敏感性分析就是相关人员在很多不确定性因素中,找到严重影响到相关项目经济利益的敏感性因...
-
关于财务会计毕业论文范文
当前,中国财务会计概念框架的制定是必要的和紧迫的,中国财务会计概念框架研究为财政部制定概念框架提供依据。下面是小编为大家整理的关于财务会计毕业论文,供大家参考。财务会计毕业论文范文1.财务会计与管理会计的内在关系财务会计和管理会计虽然都是以企业会...