实验四平衡二叉树演示技术总结.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验四 平衡二叉树演示 班级:计算机1405 组别:4 姓名:刘诚阳 学号问题定义及需求分析 1.1课题目的和任务 问题描述: 利用平衡二叉树设计动态查找表。 实验要求: 设计平衡二叉树的动态演示的模拟程序。 1)采用平衡二叉树存储结构。 2)完成平衡二叉树的创建、查找、插入和删除的演示操作。 3)可以考虑两棵平衡二叉树的合并。 1.2数据形式 输入数据形式:通过键盘输入数据 输入值的范围:树中元素的值为float型,范围为1.2e-38至3.4e+38;树的名称为char类型数据,可以输入字母,数字和符号,但是长度必须在20位以内;对菜单进行操作时,输入数据长度必须在200以内,且有效的输入数据为0至7,其中0为退出程序,1至7为对应菜单的操作选项。 输出数据形式:输出到显示器。 1.3程序功能 创建平衡二叉树存储结构,通过平衡因子,使二叉排序树达到平衡,提供平衡二叉树的创建、查找和删除,树中元素的查找、插入和删除等基本功能,可以实现创建多棵平衡二叉树,并且能够进行两棵树的合并。通过平衡二叉树,能够使树时刻保持平衡,从而提高在树中遍历数据的速度,具有重要意义。 1.4测试数据 1 //创建平衡二叉树 2 //输入创建树的个数 t1 //输入第一个树的名称 5 //输入第一个树中元素的个数 5 2 6 8 9 //依次输入各个元素 t2 //输入第二个树的名称 5 //输入第二个树中元素的个数 3 1 4 10 7 //依次输入各个元素 5 //层次遍历输出第一个树的结构图 t1 //操作树名 5 //层次遍历输出第二个树的结构图 t2 //操作树名 3 //插入元素操作 t1 //操作树名 1 //插入元素个数 7 //依次插入元素 5 //层次遍历输出树的结构图 t1 //操作树名 4 //删除元素操作 t2 //操作树名 1 //删除元素个数 7 //依次删除元素 5 //层次遍历输出树的结构图 t2 //操作树名 6 //合并两个树操作 t1 t2 //操作树名 5 //层次???历输出树的结构图 t1 //操作树名 2 //查询元素操作 t1 //操作树名 5 //需要查询的元素(该元素树中存在) 2 //查询元素操作 t1 //操作树名 11 //需要查询的元素(该元素树中不存在) 7 //删除二叉平衡树操作 t1 //操作树名 2 //查询操作 t1 //操作树名(会提示该树不存在,说明删除树成功) 0 //退出程序 概要设计 2.1抽象数据类型 需要定义一个树的结构类型,其中包含数据类型,它的左右孩子指针,以及平衡因子,平衡因子的取值为-1,0,1三种,分别对应树的右边高(RH),平衡(EH)和左边高(LH)三种情形,通过平衡因子的判别,来调整树的高度使其达到平衡;另外需要用到双向链表的数据结构,以及队列的数据结构。 2.2主程序流程及各模块之间的调用关系 详细设计 3.1存储结构实现 typedef struct Type{//数据类型结构 float num; }Type; /*平衡树结构声明*/ typedef struct AVLTree{//二叉平衡树结构体声明 int bf;//结点的平衡因子 struct Type data;//结点数据 struct AVLTree* lchild,* rchild;//左右孩子 }AVLTree,*AVL; /*队列结构

文档评论(0)

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

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

1亿VIP精品文档

相关文档