首页 利用二叉排序树对顺序表进行排序

利用二叉排序树对顺序表进行排序

举报
开通vip

利用二叉排序树对顺序表进行排序长 沙 学 院 课程设计说明书 题目 利用二叉排序树对顺序表进行排序 系(部)   专业(班级)   姓名   学号   指导教师   起止日期 2015.12.8—2015.12.15     课程设计任务书 课程名称:数据结构与算法课程设计 设计题目: 为了充分调动学生的学习积极性与主动性,适应不同兴趣、不同程度的学生对课程设计的要求,本课程设计提供四个任选题。每个学生可以根据本人的兴趣及能力选择教师指定的选题,也可以自定其他的选题。 1、一元多项式计算问题...

利用二叉排序树对顺序表进行排序
长 沙 学 院 课程设计说明书 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 目 利用二叉排序树对顺序表进行排序 系(部)   专业(班级)   姓名   学号   指导教师   起止日期 2015.12.8—2015.12.15     课程设计任务书 课程名称:数据结构与算法课程设计 设计题目: 为了充分调动学生的学习积极性与主动性,适应不同兴趣、不同程度的学生对课程设计的要求,本课程设计提供四个任选题。每个学生可以根据本人的兴趣及能力选择教师指定的选题,也可以自定其他的选题。 1、一元多项式计算问题 2、迷宫问题 3、利用二叉排序树对顺序表进行排序 4、交通咨询系统 5、内部排序算法的比较 已知技术参数和设计要求: 需求说明及要求 题目三:利用二叉排序树对顺序表进行排序 问题描述: 利用二叉排序树对顺序表进行排序。 基本要求: (1) 生成一个顺序表L; (2) 对所生成的顺序表L构造二叉排序树; (3) 利用栈结构实现中序遍历二叉排序树; (4) 中序遍历所构造的二叉排序树将 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 由小到大输出。 测试数据: 用伪随机数产生程序产生,表长不小于20。 选作内容: 用实现二叉排序树的插入和删除操作。 各阶段具体要求: 1、需求 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 阶段 熟悉系统业务,从业务中抽取出系统的需求,形成完善的需求说明书。 2、系统设计阶段 根据需求,进行程序设计,包括定义系统的界面、定义系统数据的存储方式等,形成完善的设计说明书。 3、编码实现阶段 (1)完成代码编写 (2)要求代码编写规范 4、系统测试阶段 (1)完成功能调试 (2)要求完成必要的测试工作 5、交付实施阶段 (1)提交可正常执行的系统 (2)提交系统需求说明书、设计说明书、程序代码 (3)撰写课程设计报告书 (4)要求规范地书写文档 设计工作量: (1)软件设计:完成问题陈述中所提到的所有需求功能。 (2) 论文 政研论文下载论文大学下载论文大学下载关于长拳的论文浙大论文封面下载 :要求撰写不少于3000字的文档,详细说明各阶段具体要求。 工作计划 幼儿园家访工作计划关于小学学校工作计划班级工作计划中职财务部门工作计划下载关于学校后勤工作计划 : 数据结构课程设计总学时数为2 周,其进度及时间大致分配如下: 序号      设计内容                                  天数 1 分析问题,给出数学模型,选择数据结构1 2 设计算法,给出算法描述2 3 给出源程序清单1 4编辑、编译、调试源程序5 5 编写课程设计报告1 总计10 注意事项 ? 提交文档 ? 长沙学院课程设计任务书    (每学生1份) ? 长沙学院课程设计鉴定表    (每学生1份) ? 长沙学院课程设计说明书    (每学生1份) 指导教师签名:            日期:            教研室主任签名:         日期:        系主任签名:           日期:        长沙学院课程设计鉴定表 姓名   学号   专业   班级   设计题目 利用二叉排序树对顺序表进行排序 指导教师   指导教师意见: 评定等级: 教师签名: 日期: 答辩小组意见: 评定等级:  答辩小组长签名:  日期: 教研室意见: 教研室主任签名: 日期:  系(部)意见: 系主任签名:   日期:   说明 课程设计成绩分“优秀”、“良好”、“及格”、“不及格”四类;                       摘要 数据结构是研究与数据之间的关系,我们称这一关系为数据的逻辑结构,简称数据结构。当数据的逻辑结构确定以后,数据在物理空间中的存储方式,称为数据的存储结构。相同的逻辑结构可以具有不同的存储结构,因而有不同的算法。本次课程设计,是基于链式顺序表建立二叉排序树。主要功能有建立、重建、插入、删除以及遍历。 关键词:二叉排序树、中序遍历、插入结点、删除结点 目录 第1章    设计内容与要求    7 1.1课程名称:数据结构与算法课程设计    7 1.2 设计要求:    7 第2章    需求分析    8 2.1设计目的    8 2.2  设计环境    8 第三章概要设计    9 3.1 功能结构    9 3.2函数的结构体    10 3.3系统主要的函数    10 第四章详细设计    12 4.1插入模块的设计    12 4.2删除模块的设计    13 4.3遍历模块设计    14 4.4树型打印模块的设计    15 4.5重建二叉树模块的设计    15 第五章模块测试    16 5.1插入模块测试    16 5.2删除插入模块测试    17 5.3遍历模块测试    18 5.4树型打印模块测试    19 5.5二叉排序树重建模块测试    20 第六章总结    22 第七章附录源代码    23 第1章 设计内容与要求 1.1课程名称:数据结构与算法课程设计 设计题目:利用二叉排序树对顺序表进行排序 问题描述:利用二叉排序树对顺序表进行排序。 1.2设计要求: (1) 生成一个顺序表L; (2) 对所生成的顺序表L构造二叉排序树; (3) 利用栈结构实现中序遍历二叉排序树; (4) 中序遍历所构造的二叉排序树将记录由小到大输出。 测试数据: 用伪随机数产生程序产生,表长不小于20。 选作内容: 用实现二叉排序树的插入和删除操作。 第2章 需求分析 2.1设计目的 本次构造的是一个二叉排序树,主要的功能有二叉排序树的建立、节点的插入与删除,二叉树的中序遍历、树型打印、以及重建一个新的二叉排序树。 图2.1系统功能模块图 2.2设计环境 Windows 10系统、visual studio2015下编译运行 第三章概要设计 3.1 功能结构 本程序主要实现的有七个功能,首先创建二叉排序树,完成后出现菜单界面,菜单界面的功能有:二叉排序树的插入、删除、中序遍历、树形输出、二叉排序树的重建、退出。 图3.1主要功能结构流程图 3.2函数的结构体 typedef int keytype; typedef int valuetype; typedef int listtype; ///////////////////////////// struct linklist { struct linklist *next; int element; //参数的数值 }; //顺序表结点的结构体 struct int_linklist { struct linklist *head; //顺序表的头结点的定义 int counts; //对顺序表的元素的多少进行统计 }; //////////////////////// typedef struct BSTNode { keytype data; //存放关键字的data struct BSTNode *lchild, *rchild; //定义二叉排序树的指针 }BTNode, *Btree; ///////////////////// typedef Btree Selem; typedef struct snode { Selem data; //定义栈的存储的数据 struct snode *next; //栈的指针 }snode, *linkst; typedef struct linkstack { linkst top; //定义栈的栈顶指针 int count; //统计栈里面的元素 }linkstack; 3.3系统主要的函数 struct int_linklist*init(); // 初始化链式顺序表 void add(struct int_linklist*, int); //链式顺序表增加结点 void printf_list(struct int_linklist *); //输出已经创建好的顺序表 ///////////////////// void emptyMessage(char *); //输出错误的提示 void initstack(linkstack *); //初始化链式栈 void push_stacks(linkstack *, Selem ); //进栈函数 void pop_stacks(linkstack *,Selem&); //出栈函数 bool empty_stack(linkstack *); //判断栈是否为空的函数 ///////////////////////// BTNode *init_BSTree(Btree); //初始化二叉排序树 Btree BSTree_fund(); //建立一个二叉排序树的函数 bool Search_BSTree(Btree, keytype, BTNode&, BTNode&); //判断该值是否在二叉树存在 bool insert_BSTree(Btree&, valuetype); //插入一个数值,返回0或1,判断是否插入成功 bool Delete_BSTree(Btree&, keytype); //删除函数,找到要删除的数值,调用delete_value(Btree &tree),返回0或1判断删除是否成功 void delete_value(Btree &tree); //删除这个结点 void inoder_rec(Btree); //中序非递归遍历二叉排序树 void PrintTree(Btree, int); //按树状图就行输出 ////////////////////////////////////// void menu(Btree); //函数的菜单界面 第四章详细设计 4.1插入模块的设计 bool Search_BSTree(Btree tree, keytype value, Btree &parents, Btree &child) { //寻找函数,判断二叉排序树中是否有该值,有返回1,无返回0 child = tree;//子节点等于根节点 while (child) {//如果子节点child不为空,则执行下面代码 if (value == child->data) {//如果值等于child->data,则表示找到,返回1 return 1; } else if (value < child->data) {//如果该值小于child->data,则向左子树进行查找 parents = child;//parents纪录child结点的上一个结点,相当于记录父节点 child = child->lchild; } else { parents = child; child = child->rchild; } } return 0;//如果不执行上面一段代码,或者没有找到,返回0 // } } bool insert_BSTree(Btree &tree, keytype value) { Btree parents, child;//定义指针
本文档为【利用二叉排序树对顺序表进行排序】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_153723
暂无简介~
格式:doc
大小:46KB
软件:Word
页数:15
分类:互联网
上传时间:2019-04-20
浏览量:103