数据结构报告正文精选.docVIP

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构报告正文精选

第一章 1.1数据结构课程设计要求。 1.1.1数据结构课程设计问题描述。 从键盘读入一组数据,建立二叉排序树并对其进行查找、遍历、格式化打印等有关操作。 1.1.2数据结构课程设计基本要求。 建立二叉排序树并对其进行查找,包括成功和不成功两种情况,并给出查找长度。 1.2.1数据结构课程设计测试数据。 由学生依据软件工程的测试技术自己确定。注意测试边界数据。 1.2.2数据结构课程设计的选作内容。 实现二叉排序树的插入、删除操作。 第二章 2.1数据结构课程设计的算法思想。 为了实现任务书的几个要求,本次课程设计的算法思想主要包括以下三部分。 2.1.1主菜单设计。 为了方便对二叉排序树的基本操作,设计一个包含多个菜单选项的主菜单以实现对二叉排序树的各个操作。本系统的主菜单界面如图1所示。 图1.二叉排序树操作的主菜单 2.1.2存储结构的设计。 本程序主要采用二叉树结构类型来表示二叉排序树。其中二叉树节点由1个表示关键字的key表示,还有指向该左孩子和右孩子的指针,通过keyp-key的if语句来判断,其中p表示二叉排序树。 2.2.1系统功能的设计。 本程序设置了5个子功能菜单,其设计如下。 (1)建立二叉排序树。主要通过Bstree Create()函数来实现。根据系统提示,输入节点的关键字,二叉树上面的各个元素,并以-1作为结束的标识符。 (2)往二叉树当中插入数据。主要通过Bstree Insert(y)函数实现。While语句对二叉树状态的判断,通过keyp-key,以及key==p-key,对二叉树的左右之树进行定义,其中p表示二叉排序树,每次只能够插入一个新的数据,不能插入已经存在的元素。 (3)二叉树当中查找某数据。主要通过Bstree Search()函数实现。每次进行查询,成功则显示“查询到该节点”,不成功则“显示查询不到该节点,通过if语句对结点在二叉树当中左右子树进行判断。 (4)遍历该二叉排序树。主要通过void Traverse()函数实现。遍历二叉排序树可以显示该二叉排序树的全部节点信息。如果一开始没有创造二叉树,还会提醒你先创建树在进行遍历。 (5)删除二叉排序树当中某个数据。主要通过Bstree Delete()函数实现。可以对二叉排序树中不需要的节点进行删除,通过对输入关键字的查找进行删除的操作,主要运用了队列的知识,头尾指针的定义来查找相关的数据。 (6) 树状打印二叉排序树。 主要通过void TranslevelPrint(Bstree bt)函数实现。通过队列当中的头尾指针定义到树的结点以及结点所在的层次。从而确定打印之后结点应该到的位置。While 语句主要对结点深度进行横向控制,使打印图形比较美观。从而树状输出你定义的二叉排序树。 第三章 3.1模块划分。 3.1.1主程序与子程序之间的对应关系。 本程序主要分为两部分:主程序模块以及二叉树各个操作模块。 主程序模块——————二叉树各个操作模块 图2.本设计当中主程序与子程序之间的主要调用关系 注释:(1) Bstree Create(); //创建二叉排序树 (2) Bstree Insert(Bstree tree,int key); //插入 (3)Bstree Search(Bstree tree,int key); //查找 (4)void Traverse(Bstree tree); //遍历 (5) Bstree Delete(Bstree tree,int key); //删除信息 (6)void TranslevelPrint(Bstree bt); //树状打印输出 3.1.2子程序的详细设计如下: (1)Bstree Create二叉排序树的创建函数,主要用来创建二叉树进而进行操作。 Bstree Create() { int key; Bstree tree=NULL; //初始化空树 scanf(%d,key); while(key!=0) //如果二叉排序树非空 { tree=Insert(tree,key); //插入根节点 scanf(%d,key); } return tree; } //初始化创建二叉排序树 (2)Bstree Insert(Bstree tree,int key)二叉排序树的插入函数,主要用来对二叉树插入某个元素的操作。 Bstree Insert(Bstree tree,int key) { Bstree p=tree;

您可能关注的文档

文档评论(0)

pfenejiarz + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档