- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
二叉平衡树实现学生信息管理系统
课程设计报告
( 2011—2012年度第2学期)
实验名称:数据结构与算法
题 目:二叉平衡树学生信息管理系统
院 系:控制与计算机工程学院
班 级:信安1101
学 号:1111290110
学生姓名:黄世晨
指导教师:焦润海
设计周数: 1周
成 绩:
日期: 2012年 6 月 28 日
一、课程设计的目的与要求
目的: 应用数据结构和算法来设计相应的程序,培养学生问题求解模块的框架设计和详细设计、相关程序实现和调试能力,完成创新能力和实践能力的训练。
要求: 用高级程序设计语言C编码,用VC++开发平台调试。
二、设计正文
课程设计题目
需求分析概要设计详细设计附录()
题目编制一个的程序二、需求分析 本演示程序在环境用编写, 输入的形式和输入值的范围:插入时需要输入插入的;删除时输入删除的;查找在所有输入中, 输出的形式: 程序所能达到的功能:完成的()、插入、删除、查找操作 测试数据:A. 操作中依次输入B. 查找操作中依次输入C. 删除操作中依次输入三、概要设计为了实现上述程序功能,需要定义的抽象数据类型: ADT {
数据对象:数据关系:基本操作: void creat(T_N T) 操作结果:.
int insertavl(T_N T,STU data)操作结果:int find(T_N T,char *x,T_N f,T_N c)
初始条件:已存在操作结果: int Deleteavl(T_N T,char *xuehao)初始条件:已存在操作结果:int disp(T_N T)
初始条件:已存在操作结果: int menu()操作结果:在屏幕上显示操作菜单 本程序包含个函数:Deleteavl(T_N ,char * );
删除辅助函数Del(T_N ,T_N );
调平函数LLbalance(T_N );
调平函数RRbalance(T_N );
调平函数LRbalance(T_N );
调平函数RLbalance(T_N );
查找函数find(T_N ,char *,T_N ,T_N );
插入信息并调平函数insertavl(T_N ,STU);
在右子树上删除后的调平函数Rightadjust(T_N );
在左子树上删除后的调平函数Leftadjust(T_N );
菜单函数menu();
保存函数save(T_N,FILE *);
凹入显示二叉平衡树函数print(T_N ,int );
创建函数creat(T_N );
显示函数disp(T_N ); 函数间关系如下:
四、详细设计 为了实现概要设计中定义的所有的数据类型对主程序和其他模块;1、结点类型和指针类型typedef struct
{
char xuehao[10];
char name[20];
char zhuanye[10];
char banji[20];
char shengri[20];
int age;
}STU;
//结点
typedef struct TreeNode
{
STU data;
struct TreeNode *lchild,*rchild;
int ph;
}TreeNode,*T_N;
2)、主要算法的伪代码或者流程图
//保存
int save(T_N T,FILE *fp)
{
if(T==NULL)
return 0;
else
{
fprintf(fp,%s\t%s\t%s\t%s\t%d\t%s\t,T-data.xuehao,T-data.name,T-data.zhuanye,T-data.banji,T-data.age,T-data.shengri);
save(T-lchild,fp);
save(T-rchild,fp);
}
}
//插入
int insertavl(T_N T,STU data)
{
if(T==NULL)
{
T=new TreeNode;
T-data=data;
T-lchild=T-rchild=NULL;
T-ph=0;
return flag=1;
}//如果是空的话就生成新节点并且返回1
else
{
result=strcmp(T-data.xuehao,data.xuehao);
if(result==0)
文档评论(0)