数据结构课程设计之二叉排序树基本操作的实现盘
更新时间:2023-10-27 13:54:01 阅读量: 综合文库 文档下载
设计题目<二>:6.4.1二叉排序树基本操作的实现盘P134 ............................................................... 错误!未定义书签
一、设计要求 ................................................................................................................................................................
1.问题描述 ..........................................................................................................................................................2. 需求分析 ........................................................................................................................................................二、概要设计 ................................................................................................................................................................
1.主界面设计 ......................................................................................................................................................2. 存储结构设计 ................................................................................................................................................3. 系统功能设计 ................................................................................................................................................三、 模块设计 ..............................................................................................................................................................
1.模块设计 ..........................................................................................................................................................2. 系统子程序及功能设计 ................................................................................................................................3. 函数主要调用关系图 ....................................................................................................................................四、详细设计 ................................................................................................................................................................
1.数据类型定义 ..................................................................................................................................................2. 系统主要子程序详细设计 ............................................................................................................................
五、测试分析 ........................................................................................................................................................................六、 用户手册 ......................................................................................................................................................................七、 调试报告 ......................................................................................................................................................................
设计题目<二>:6.4.1二叉排序树基本操作的实现盘P134 一、设计要求 1.问题描述
从键盘读入一组数据,并建立排序树并对其进行查找,遍历,格式化输出操作。
2.需求分析
二叉树是一种数据结构,用于保存和处理树状的数据,比如家谱。他的应用极为广泛,因为根据数据结构的理论,任何复杂的数能够转为二叉树,并进行处理,二叉树在排序,查找,大规模数据索引方面有很多很多应用。而且二叉树排序是简单算法排序中速度是最快的。
在二叉树的一些应用中,常常要求在树中查找具有某些特征的节点,或是对数中全部节点逐一进行某种处理。这就提出了遍历二叉树。根据遍历的方向的选择,就有了后序遍历二叉树查找,删除等。因此掌握二叉树的算法非常重要,而且高效的算法能够节省很多成本。
二、概要设计 1.主界面设计
图2-1 主界面
2.存储结构设计
typedef struct Bstnode {
//链表结点类型 //定义要操作的步骤 //链队列的类型定义
int key;
struct Bstnode *rchild,*lchild;
}Bstnode,*Bstree;
3.系统功能设计
本系统分为以下6个功能模块。 (1)创建二叉排序树。 (2)插入。插入元素到序列中
(3)查找。分为查找成功和查找不成功。 (4)遍历。遍历二叉树序列 (5)删除。删除存在的元素 (6)退出。退出整个系统
三、模块设计 1.模块设计
主程序模块 菜单选项模块 二叉树操作模块
图2-2 模块调用示意图
2.系统子程序及功能设计
本系统共设置5个子程序,各子程序的函数名及功能说明如下。 (1)Bstree Create()
//初始化空数 //插入元素
//查找关键字为key的
(2)Bstree Insert(Bstree tree,int key) (3)Bstree Search(Bstree tree,int key) 节点
(4)void Traverse(Bstree tree)
//遍历
//删除关键字为key的
(5)Bstree Delete(Bstree tree,int key) 节点
以下是二叉树的基本操作。 Bstree Create();
//创建二叉排序树 //插入 //查找 //遍历
Bstree Insert(Bstree tree,int key); Bstree Search(Bstree,int key); void Traverse(Bstree,int key); void Traverse(Bstree tree); Bstree Delete(Bstree tree,int key);
//删除
3.函数主要调用关系图
7Main() 四、详细设计 1.数据类型定义
(1)二叉树的定义
1 2 3 4 5 6 图2-5 系统函数调用关系图
typedef struct Bstnode { int key;
//链表结点类型
struct Bstnode *rchild,*lchild;
}Bstnode,*Bstree; (2)全局变量的定义 int key1,key2,key3; int select,flag;
义
2.系统主要子程序详细设计
(1)创建二叉树 Bstree Create() { int key;
Bstree tree=NULL;
scanf(\ while(key!=0) { tree=Insert(tree,key); scanf(\
} return tree;
}
(2)插入元素
Bstree Insert(Bstree tree,int key) { Bstree p=tree;
Bstree s,f;
while(p!=NULL)
//关键字定义
//选择项定义和标识符定
//初始化空数
//逐个插入节点
{ f=p;
if(key==p->key)
return tree;
if(key
p=p->lchild;
else
p=p->rchild;
}
s=(Bstree)malloc(sizeof(Bstnode)); s->key=key; s->lchild=NULL; s->rchild=NULL; if(tree==NULL)
return s;
if(key
f->lchild=s;
else
f->rchild=s;
return tree;
}
(3)查找
Bstree Search(Bstree tree,int key) { Bstree p=tree; int flag=0; while(p!=NULL) {
if(p->key==key)
{
//申请空间
//新节点为二叉排序树的根//查找关键字为key的节点
正在阅读:
浅谈高三地理复习阶段的分层教学01-19
第1章 发放半导体器件习题及答案09-28
2022年第一季度党建工作总结范文三篇04-03
农村学校如何对中学生进行青春期性教育11-27
郑商所结算业务(折抵、充抵、质押)06-12
幼儿园防暴演习方案05-20
建筑供配电课程设计指导书09-06
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 数据结构
- 基本操作
- 排序
- 课程
- 实现
- 设计
- 古代女子装饰素材
- 写给自己的30句话
- 部编本人教版2019--2020学年度第一学期四年级语文上册期末考试题及答案(含六套题)
- 资源养护
- 思想政治教育学的研究内容和特点
- 第七章相关与回归分析习题
- 地质勘查论文:中国主要地方病区地质环境研究进展与展望
- 学生成绩管理系统需求规格说明书
- 湘教版小学美术一年级下册全册教案
- 律师事务所劳动合同范本(律师助理和实习律师示范文本)
- 毛概复习题第九章 建设中国特色社会主义政治
- 浅论中平能化物业中心客户服务管理 -
- 高二数学抛物线及其标准方程教案
- 保姆(钟点工)服务合同
- 外国文学史课后习题答案 - - 第一到第六单元
- 学习核心素养心得体会
- 工商行政管理体制历史沿革情况
- 烧成工段职责
- 朱月恒 电磁场与电磁波实验 - 图文
- 小学六年级语文学习天地IV(18)