1、二叉排序树的查找算法的设计和性能分析实验报告“数据结构”课程设计报告二叉排序树的查找算法的设计和性能分析学生姓名: 王玉 杨甜利 * * * * 所 在 系: 电 子 信 息 系 所学专业: 计 算 机 科 学 与 技 术 年 级: 2010级计算机(1)班 第一章 需求分析11 选题要求(1) 根据提供的文件读取数据以姓名做关键字创建二叉排序树(2) 输入关键字在建立好的二叉树中查找,并输出相关信息。(3) 输出比较查找次数,平均查找长度做性能分析。1.2选题的背景与意义(1) 选题背景文件系统和数据库系统一般都采用树的数据结构数据,主要为排序和检索的效率。二叉树是一种最基本最典型的排序树,
2、用于教学和研究树的特性,本身很少在实际中进行应用,因为缺点太明显了。二叉排序树是一种比较有用的折衷方案。数组的搜索比较方便,可以直接用下标。链表与之相反,删除和插入元素很快,但查找很慢。二叉排序树就既有链表的好处,也有数组的好处。在处理大批量的动态的数据是比较有用。(2) 选题的意义:A、熟练掌握二叉排序树的创建。B、掌握二叉排序树的查找C、掌握二叉排序树查找时的查找次数。D、加深对二叉排序树结构和性质的理解,逐步培养解决实际问题的编程能力1.3 课程设计目标(1) 掌握一些基本算法框架的架构。(2) 对比了解二叉排序树的优劣。(3) 巩固课程知识的学习。1.4 人员组成和分工小组成员主要分工
3、细则备注王玉二叉排序树的建立细节方面相互探讨不断纠错察错不断改进杨甜利关键字查找第二章 概要分析2.1设计流程图 流程概述:以姓名做关键建立二叉排序树,并从键盘输入在二叉排序树中进行查找及性能分析。22 部分数据(截图)2.3模块划分第三章 详细设计3.1概要设计读文件函数:fp=fopen(c:a.txt,r); 插入并建立二叉排序树:Insert(BiTreeNode *root, DataType item)查找关键字:Search(BiTreeNode *root, DataType item)查找性能分析:SearchCount; 3.2函数调用图如下: 3.3主要函数int mai
4、n()DataType A;FILE *fp;fp=fopen(c:a.txt,r); while(fscanf(fp,%s %d %s,A.ID,&A.number,A.key )!=EOF) int Insert(BiTreeNode *root, DataType item); fclose(fp); return OK; BiTreeNode *root = NULL;while(1) int p; char ID; printf(n输入要查找的姓名(输入0查找结束):); scanf(%s,&ID); if(ID=0) break;InTraverse(root);if(p=0) p
5、rintf(没有找到!);else printf(n查找结果:报名号=%s 编号=%d 姓名=%s,A.ID,A.number ,A.key ); 第四章 用户手册4.1 运行程序读取文件创建二叉排序树,按照提示输入关键字,查找关键字。4.2 程序运行出现的问题及解决办法程序运行过程中会出现各种各样的问题,其中最主要的问题有1.查找过程中出现了关键字输入时,却未像预期那样输出关键字信息,而总是输出最后个人的信息。解决方法:在老师的纠正下发现函数的返回值的参数类型传递错。2.查找次数的与总计数混合解决方法:由于能力有限所以未能更好的对此点进行改正,所以选择了返回总计数并进行了性能分析。(希望以后
6、可以有机会做的更好)第五章 项目总结本程序由我很一名成员对各个模块进行编写,之后由我们共同对各个模块进行进行组合调试,期间经过了老师的指导,让我们发现了我们许多的不足之处:( 1 ) 许多概念性的知识还不够扎实,需要我们继续巩固。( 2 ) 各模块进行组合时,出现了许多错误,原因是组员之间没有对函数的定义名进行好的沟通,定义名出现了几种不同的写法。(3)在经过不懈的努力下虽然上程序基本上可以运行,但是在程序的健壮性和方便性始终觉得性能差了些,也由于一些个人原因使得程序显得没有预期那样的完整,及功能的丰富性。希望以后可以多学习,多操作!参考文献:1 田鲁怀编著的数据结构,北京:电子工业出版社出版
7、,2006.82数据结构(C语言版) 严蔚敏 吴伟民 北京:清华大学出版社3 数据结构与算法分析(C语言版) 维斯 张怀勇编著4 XX文库数据结构课程设计评分表题目二叉排序树的查找算法的设计和性能分析专业班级计算机2010(1)班提交日期小组成员学 号姓 名分工和工作量成绩组 长1082086王玉二叉排序树的建立组 员1082102杨甜利关键字查找小组评分表评分项目分数1、实现情况(15分)完成课程设计要求的情况。2、系统分析(10分)对系统的理解及分析的深入程度。3、系统设计(20分)总体设计、具体设计、数据结构设计等。4、程序设计(30分)程序设计方法和编程工具掌握。5、界面设计(15分)界面友好、操作方便等。6、论文撰写(10分)论文撰写规范、合理等。小组总成绩指导教师评语教师签名日期个人成绩和小组评分及指导教师评语由指导教师填写
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1