数学与计算机学院计算机系数据结构程序设计报告.DOC

上传人:国*** 文档编号:966197 上传时间:2018-11-09 格式:DOC 页数:19 大小:147KB
下载 相关 举报
数学与计算机学院计算机系数据结构程序设计报告.DOC_第1页
第1页 / 共19页
数学与计算机学院计算机系数据结构程序设计报告.DOC_第2页
第2页 / 共19页
数学与计算机学院计算机系数据结构程序设计报告.DOC_第3页
第3页 / 共19页
数学与计算机学院计算机系数据结构程序设计报告.DOC_第4页
第4页 / 共19页
数学与计算机学院计算机系数据结构程序设计报告.DOC_第5页
第5页 / 共19页
点击查看更多>>
资源描述

1、1数学与计算机学院计算机系数据结构程序设计报告平衡二叉树学生姓名:万 帅学 好:1004681082班 级:计算机系 102指导老师:陈 文 平报告日期:2011/6/262目录1. 平衡二叉树31.1 平衡二叉树的定义.31.2 平衡二叉树的构造.31.3 平衡二叉树查找的分析.32. 程序功能33. 程序结构类型34. 程序函数45. 算法思想55.1 判断二叉树的旋转方法.55.2 平衡旋转处理.55.3 在平衡二叉树中插入元素.55.4 在平衡二叉树中删除元素.55.5 输出平衡二叉树树形.55.6 销毁平衡二叉树.56.程序设计总结.97.结束语108.附录:程序清单1031. 平衡

2、二叉树1.1 平衡二叉树的定义平衡二叉树(Balanced Binary Tree 或 Height-Balanced Tree)又称 AVL 树。它或者是一颗空树,或者是具有下列性质的二叉树:它的左子树和右子树都是平衡二叉树,且左子树和右子树的深度之差的绝对值不超过 1。若将二叉树上结点的平衡因子 BF(Balanced Factor)定义为该结点的左子树的深度减去它的右子树的深度,则平衡二叉树上所有结点的平衡因子之可能是-1、0 和 1。只要二叉树上有一个结点的平衡因子的绝对值大于 1,则该二叉树就是不平衡的。1.2 平衡二叉树的构造构造一颗平衡二叉树的过程就是将一颗空树从根结点起,逐步插

3、入或删除结点并不断对此树进行平衡化。在构造平衡二叉树的过程中有插入和删除两大操作。在树中进行插入和删除操作都可使树失去平衡,然而要让二叉排序树由不平衡转化为平衡,操作就是对二叉树进行旋转,旋转的过程将在算法思想中详细介绍。1.3 平衡二叉树查找的分析在平衡二叉树上进行查找的过程和二叉排序树相同,因此,在查找过程中和给定值进行比较的关键字个数不超过树的深度。因此,在平衡二叉树上进行查找的时间复杂度为O(log n).2. 程序功能本程序的功能就是将二叉排序树转变为平衡二叉树,其操作有:创建二叉树、插入数据、删除数据、输出、销毁二叉树和退出。3. 程序结构类型在本程序中主要用到两个结构类型:结构体和队列。二叉树是链式存储结构,故用结1创 建 二 叉 树2插 入 数 据3删 除 数 据4输 出5销 毁 二 叉 树0退 出请选择:4构体来定义其结构。队列是用作输出二叉树的树形(层序输出) 。4. 程序函数4.1 main()函数:(1)函数原形:void main()(2)功能:显示总菜单,调用子函数4.2 Create()函数 :(1)函数原形:void Create(BSTree int bf;struct BSTNode *lchild,*rchild;BSTNode,*BSTree;

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 重点行业资料库 > 1

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。