平衡二叉树的生成 - Read.DOC

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
平衡二叉树的生成 - Read

湖南人文科技学院计算机系 课程设计说明书 课 程 名 称:《数据结构》 课 程 代 码: 题 目: 平衡二叉树的生成 年级/专业/班:04级计算机科学与技术专业计算机本科三班 学 生 姓 名:王伟 学 号指 导 教 师: 羊四清 开 题 时 间: 2007 年 6 月 10 日 完 成 时 间: 2007 年 6 月 22 日 目 录 摘要………………………………………………………………………………………………1 一、引言…………………………………………………………………………………………2 二、设计任务与目的……………………………………………………………………………2 三、设计方案与实施……………………………………………………………………………2 1、总体设计 …………………………………………………………………………………2 基本概念(包括设计到的概念) 树的概念 平衡二叉树的概念 遍历的概念 动态平衡技术最小不平衡子树树型结构是以分支关系定义的层次结构,它是一种重要的非线性结构。树结构在客观世界中广泛存在The tree structure is defined with the branch relation of layer structure, it is a important nonlinear structure. The tree structure is an extensive existence in the objective world. And because of its characteristic, it owns higher efficiency than general binary tree while in searching, so it is used extensively. Key words: Binary Tree , Balanced Binary Tree, Search 《数据结构》课程设计 --平衡二叉树的生成设计 一、引 言 平衡二叉树是对 图1 图1是有8个结点的树,其中A是根,其余结点分成2个互不相交的子集:T1={B,D},T2={C,E,F,G,H};T1和T2都是根A的子树,且本身也是一棵树。 平衡二叉树的概念 形态匀称的二叉树称为平衡二叉树 (Balanced binary tree) ,其严格定义是:   若 T 是一棵非空二叉树,其左、右子树为 TL 和 TR ,令 hl 和 hr 分别为左、右子树的深度。当且仅当    ①TL 、 TR 都是平衡二叉树;    ② | hl - hr |≤ 1; 时,则 T 是平衡二叉树。 【例】如图2 所示: (a)平衡二叉树 (b)非平衡二叉树 图2 平衡二叉树与非平衡二叉树 相应地定义 hl - hr 为二叉平衡树的平衡因子 (balance factor) 。因此,平衡二叉树上所有结点的平衡因子可能是 -1 , 0 , 1 。换言之,若一棵二叉树上任一结点的平衡因子的绝对值都不大于 1 ,则该树是就平衡二叉树。 遍历的概念 遍历二叉树指按某条搜索路径访问树中的每个结点,使得每个结点均被访问一次,而且仅被访问一次。由二叉树的递规定义可知,二叉树的3个基本单元组成:根结点、左子树和右子树。因此,若能依次遍历这3部分,便是遍历了整个二叉树。 动态平衡技术Adelson-Velskii 和 Landis 提出了一个动态地保持二叉排序树平衡的方法,其基本思想是:在构造二叉排序树的过程中,每当插入一个结点时,首先检查是否因插入而破坏了树的平衡性,如果是因插入结点而破坏了树的平衡性,则找出其中最小不平衡子树,在保持排序树特性的前提下,调整最小不平衡子树中各结点之间的连接关系,以达到新的平衡。通常将这样得到的平衡二叉排序树简称为 AVL 树。为了保证二叉排序树的高度为lgn,从而保证二叉排序树上实现的插入、删除和查找等基本操作的平均时间为O(lgn),在往树中插入或删除结点时,要调整树的形态来保持树的平衡。使之既保持BST性质不变又保证树的高度在任何情况下均为O(lgn),从而确保树上的基本操作在最坏情况下的时间均为O(lgn)。任一结点的左右子树的高度均相同(如满二叉树),则二叉树是完全平衡的。通常,只要二叉树的高度为O(1gn),就可看作是平衡的。平衡的二叉排序树指满足BST性质的平衡二叉树。AVL树中任一结点的左、右子树的高度之差的绝对值不超过1。在最坏情况下,n个结点的AVL树的高度约为1.44lgn。而完全平衡的二叉树度高约为lgn,

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档