二叉排序树的查找算法的设计和性能分析实验报告.docx

上传人:b****5 文档编号:7898209 上传时间:2023-01-27 格式:DOCX 页数:10 大小:164.52KB
下载 相关 举报
二叉排序树的查找算法的设计和性能分析实验报告.docx_第1页
第1页 / 共10页
二叉排序树的查找算法的设计和性能分析实验报告.docx_第2页
第2页 / 共10页
二叉排序树的查找算法的设计和性能分析实验报告.docx_第3页
第3页 / 共10页
二叉排序树的查找算法的设计和性能分析实验报告.docx_第4页
第4页 / 共10页
二叉排序树的查找算法的设计和性能分析实验报告.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

二叉排序树的查找算法的设计和性能分析实验报告.docx

《二叉排序树的查找算法的设计和性能分析实验报告.docx》由会员分享,可在线阅读,更多相关《二叉排序树的查找算法的设计和性能分析实验报告.docx(10页珍藏版)》请在冰豆网上搜索。

二叉排序树的查找算法的设计和性能分析实验报告.docx

二叉排序树的查找算法的设计和性能分析实验报告

 

 

“数据结构”课程设计报告

 

二叉排序树的查找算法的设计和性能分析

 

学生姓名:

王玉杨甜利

********

所在系:

电子信息系

所学专业:

计算机科学与技术

年级:

2010级计算机

(1)班

 

第一章需求分析

1.1选题要求

(1)根据提供的文件读取数据以姓名做关键字创建二叉排序树

(2)输入关键字在建立好的二叉树中查找,并输出相关信息。

⏹(3)输出比较查找次数,平均查找长度做性能分析。

1.2选题的背景与意义

(1)选题背景

文件系统和数据库系统一般都采用树的数据结构数据,主要为排序和检索的效率。

二叉树是一种最基本最典型的排序树,用于教学和研究树的特性,本身很少在实际中进行应用,因为缺点太明显了。

二叉排序树是一种比较有用的折衷方案。

数组的搜索比较方便,可以直接用下标。

链表与之相反,删除和插入元素很快,但查找很慢。

二叉排序树就既有链表的好处,也有数组的好处。

在处理大批量的动态的数据是比较有用。

(2)选题的意义:

A、熟练掌握二叉排序树的创建。

B、掌握二叉排序树的查找

C、掌握二叉排序树查找时的查找次数。

D、加深对二叉排序树结构和性质的理解,逐步培养解决实际问题的编程能力

1.3课程设计目标

(1)掌握一些基本算法框架的架构。

(2)对比了解二叉排序树的优劣。

(3)巩固课程知识的学习。

1.4人员组成和分工

 

小组成员

主要分工细则

备注

王玉

二叉排序树的建立

细节方面相互探讨不断纠错察错不断改进

杨甜利

关键字查找

 

第二章概要分析

2.1设计流程图

流程概述:

以姓名做关键建立二叉排序树,并从键盘输入在二叉排序树中进行查找及性能分析。

 

2.2部分数据(截图)

2.3模块划分

 

第三章详细设计

3.1概要设计

①读文件函数:

fp=fopen("c:

\\a.txt","r");

②插入并建立二叉排序树:

Insert(BiTreeNode*root,DataTypeitem)

③查找关键字:

Search(BiTreeNode**root,DataTypeitem)

④查找性能分析:

SearchCount;

 

3.2函数调用图如下:

3.3主要函数

intmain()

{

DataTypeA;

FILE*fp;

fp=fopen("c:

\\a.txt","r");

while(fscanf(fp,"%s%d%s",A.ID,&A.number,A.key)!

=EOF){

intInsert(BiTreeNode*root,DataTypeitem);

}

fclose(fp);

returnOK;

BiTreeNode*root=NULL;

while

(1){

intp;

charID;

printf("\n输入要查找的姓名(输入0查找结束):

");

scanf("%s",&ID);

if(ID==0)break;

InTraverse(root);

if(p==0)printf("没有找到!

");

else

printf("\n查找结果:

报名号=%s编号=%d姓名=%s",A.ID,A.number,A.key);

}

 

}

 

第四章用户手册

4.1运行程序

读取文件创建二叉排序树,按照提示输入关键字,查找关键字。

4.2程序运行出现的问题及解决办法

程序运行过程中会出现各种各样的问题,其中最主要的问题有

1.查找过程中出现了关键字输入时,却未像预期那样输出关键字信息,而总是输出最后个人的信息。

解决方法:

在老师的纠正下发现函数的返回值的参数类型传递错。

2.查找次数的与总计数混合

解决方法:

由于能力有限所以未能更好的对此点进行改正,所以选择了返回总计数并进行了性能分析。

(希望以后可以有机会做的更好)

 

第五章项目总结

本程序由我很一名成员对各个模块进行编写,之后由我们共同对各个模块进行进行组合调试,期间经过了老师的指导,让我们发现了我们许多的不足之处:

(1)许多概念性的知识还不够扎实,需要我们继续巩固。

(2)各模块进行组合时,出现了许多错误,原因是组员之间没有对函数的定义名进行好的沟通,定义名出现了几种不同的写法。

(3)在经过不懈的努力下虽然上程序基本上可以运行,但是在程序的健壮性和方便性始终觉得性能差了些,也由于一些个人原因使得程序显得没有预期那样的完整,及功能的丰富性。

希望以后可以多学习,多操作!

 

参考文献:

[1]田鲁怀编著的《数据结构》,北京:

电子工业出版社出版,2006.8

[2]《数据结构(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