数据结构大作业(平衡二叉树)

更新时间:2023-06-30 15:30:24 阅读: 评论:0

数学与计算机学院计算机系数据结构程序设计报告
平衡二叉树
学生姓名:*        *
    学    好:1004681028
      班    级:计算机系102
指导老师:*    *  *
报告日期:2011/6/26
1.平衡二叉树…………………………………………………3
1.1平衡二叉树的定义…………………………………...3考公务员看什么书
1.2平衡二叉树的构造…………………………………...3
1.3平衡二叉树查找的分析……………………………...3
2.程序功能……………………………………………………3草莓的功效与作用禁忌
3.程序结构类型………………………………………………3
4.程序函数……………………………………………………4
5.算法思想……………………………………………………5
5.1  判断二叉树的旋转方法敬若神明……………………………...5
5.2  平衡旋转处理………………………………………...5
5.3  在平衡二叉树中插入元素…………………………...5
5.4  在平衡二叉树中删除元素………………………...5
5.5  输出平衡二叉树树形………………………………...5
5.6  销毁平衡二叉树……………………………………...5
6.程序设计总结……………………………………………….9阶段性
7.结束语………………………………………………………10
8.附录:程序清单……………………………………………10
1.六一儿童节礼物平衡二叉树
1.1平衡二叉树的定义
    平衡二叉树(Balanced Binary Tree或Height-Balanced Tree)又称AVL树。它或者是一颗空树,或者是具有下列性质的二叉树:它的左子树和右子树都是平衡二叉树,且左子树和右子树的深度之差的绝对值不超过1。若将二叉树上结点的平衡因子BF(Balanced Factor)定义为该结点的左子树的深度减去它的右子树的深度,则平衡二叉树上所有结点的平衡因子之可能是-1、0和1。只要二
叉树上有一个结点的平衡因子的绝对值大于1,则该二叉树就是不平衡的。
1.2平衡二叉树的构造
举重若轻的意思    构造一颗平衡二叉树的过程就是将一颗空树从根结点起,逐步插入或删除结点并不断对
此树进行平衡化。在构造平衡二叉树的过程中有插入和删除两大操作。在树中进行插入和删除操作都可使树失去平衡,然而要让二叉排序树由不平衡转化为平衡,操作就是对二叉树进行旋转,旋转的过程将在算法思想中详细介绍。
1.3平衡二叉树查找的分析
    在平衡二叉树上进行查找的过程和二叉排序树相同,因此,在查找过程中和给定值进行比较的关键字个数不超过树的深度。因此,在平衡二叉树上进行查找的时间复杂度为O(log n).
2.程序功能
本程序的功能就是将二叉排序树转变为平衡二叉树,其操作有:创建二叉树、插入数据、
删除数据、输出、销毁二叉树和退出。
1——创  建  二  叉  树
2——插    入    数    据
   
3——删    除    数    据
   
4——输                  出
5——销  毁  二  叉  树
0——退                  出
请选择:
3.程序结构类型
在本程序中主要用到两个结构类型:结构体和队列。二叉树是链式存储结构,故用结构
体来定义其结构。队列是用作输出二叉树的树形(层序输出)。
4.程序函数
4.1 main()函数:
(1)函数原形:void main()
(2)功能:显示总菜单,调用子函数
4.2 Create()函数:
  (1)函数原形:void Create(BSTree &T)
  (2)功能:实现二叉树的创建
4.3 Inrt()函数:
  (1)函数原形:void Inrt(BSTree &T)
  (2)功能:实现在二叉树中插入数据
4.4 InrtAVL()函数:
  (1)函数原形:int InrtAVL(BSTree &T,int e,int &taller)
  (2)功能:插入结点,并将二叉树平衡化
4.5 DeleteMenu()函数:
  (1)函数原形:void DeleteMenu(BSTree &T)
  (2)功能:实现在二叉树中删除数据
4.6 DeleteAVL()函数:
  (1)函数原形:int DeleteAVL(BSTree &T,int e,int &shorter)
  (2)功能:删除结点,并将二叉树平衡化
4.7Delete鲜活水()函数:
  (1)函数原形:int Delete(BSTree &p)
  (2)功能:实现删除结点
4.8 Search()函数:
  (1)函数原形:void Search(BSTree &T,int e,int key)
  (2)功能:在树中查找和关键字相等的结点
4.9 R_Rotate()函数:
  (1)函数原形:void R_Rotate(BSTree &p)
  (2)功能:对以*p为根结点的子树进行右旋平衡处理
4.10 L_Rotate()函数:
  (1)函数原形:void L_Rotate(BSTree &p)
  (2)功能:对以*p为根结点的子树进行左旋平衡处理
4.11 RightBalance()函数:
  (1)函数原形:int RightBalance(BSTree &T)自己做奶茶怎么做
  (2)功能:对以指针T所指结点为根的二叉树作右平衡旋转处理
4.12 LeftBalance()函数:
  (1)函数原形:int LeftBalance(BSTree &T)
  (2)功能:对以指针T所指结点为根的二叉树作左平衡旋转处理
4.13 Output()函数:
  (1)函数原形:void Output(BSTree T)
  (2)功能:将二叉树按中序和层序输出
4.14 Inordertraver()函数:
  (1)函数原形:void Inordertraver(BSTree T)

本文发布于:2023-06-30 15:30:24,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1070437.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:二叉树   结点   进行   功能   结构   查找   删除
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图