2022年平衡二叉树学生信息管理系统程序 .pdf

上传人:C****o 文档编号:34270441 上传时间:2022-08-15 格式:PDF 页数:13 大小:67KB
返回 下载 相关 举报
2022年平衡二叉树学生信息管理系统程序 .pdf_第1页
第1页 / 共13页
2022年平衡二叉树学生信息管理系统程序 .pdf_第2页
第2页 / 共13页
点击查看更多>>
资源描述

《2022年平衡二叉树学生信息管理系统程序 .pdf》由会员分享,可在线阅读,更多相关《2022年平衡二叉树学生信息管理系统程序 .pdf(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、#include #include typedef struct A char NO10; char name10; char birt10; char clas10; char sex2; Elemtype; typedef struct B Elemtype data; int bf; struct B *lchild; struct B *rchild; node,*pnode; void left1(pnode &ptree,int &taller) pnode p1,p2; if(ptree-bf=0) ptree-bf=1; taller=1; else if (ptree-bf=

2、-1) ptree-bf=0; taller=0; else p1=ptree-lchild; if (p1-bf=1) ptree-lchild=p1-rchild; p1-rchild=ptree; ptree-bf=p1-bf=0; ptree=p1; else if (p1-bf=-1) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 13 页 - - - - - - - - - p2=p1-rchild; p1-rchild=p2-lchild; p2-lchi

3、ld=p1; ptree-lchild=p2-rchild; p2-rchild=ptree; if (p2-bf=0) ptree-bf=p1-bf=0; else if (p2-bf=1) p1-bf=0; ptree-bf=-1; else p1-bf=1; ptree-bf=0; ptree=p2; ptree-bf=0; taller=0; void right1(pnode &ptree,int &taller) pnode p1,p2; if(ptree-bf=0) ptree-bf=-1; taller=1; else if (ptree-bf=1) ptree-bf=0; t

4、aller=0; else p1=ptree-rchild; if (p1-bf=-1) ptree-rchild=p1-lchild; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 13 页 - - - - - - - - - p1-lchild=ptree; ptree-bf=p1-bf=0; ptree=p1; else if (p1-bf=1) p2=p1-lchild; p1-lchild=p2-rchild; p2-rchild=p1; ptree-rchi

5、ld=p2-lchild; p2-lchild=ptree; if (p2-bf=0) ptree-bf=p1-bf=0; else if (p2-bf=-1) p1-bf=0; ptree-bf=1; else p1-bf=-1; ptree-bf=0; ptree=p2; ptree-bf=0; taller=0; int insert(pnode &ptree,Elemtype e,int &taller) if (ptree=NULL) ptree=new node; ptree-data=e; ptree-lchild=ptree-rchild=NULL; ptree-bf=0; t

6、aller=1; else if (strcmp(e.NO,ptree-data.NO)=0) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 13 页 - - - - - - - - - taller=0; return 0; if(strcmp(e.NO,ptree-data.NO)lchild,e,taller)=0) return 0; if(taller=1) left1(ptree,taller); else if(insert(ptree-rchild,e,

7、taller)=0) return 0; if(taller=1) right1(ptree,taller); return 1; void left2(pnode &ptree,int &taller) pnode p1,p2; if (ptree-bf=1) ptree-bf=0; taller=1; else if (ptree-bf=0) ptree-bf=-1; taller=0; else p1=ptree-rchild; if(p1-bf=0) ptree-rchild=p1-lchild; p1-lchild=ptree; p1-bf=1; ptree-bf=-1; ptree

8、=p1; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 13 页 - - - - - - - - - taller=0; else if (p1-bf=-1) ptree-rchild=p1-lchild; p1-lchild=ptree; ptree-bf=p1-bf=0; ptree=p1; taller=1; else p2=p1-lchild; p1-lchild=p2-rchild; p2-rchild=p1; ptree-rchild=p2-lchild;

9、p2-lchild=ptree; if (p2-bf=0) ptree-bf=0; p1-bf=0; else if (p2-bf=-1) ptree-bf=1; p1-bf=0; else ptree-bf=0; p1-bf=-1; p2-bf=0; ptree=p2; taller=1; void right2(pnode &ptree,int &taller) pnode p1,p2; if (ptree-bf=-1) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共

10、 13 页 - - - - - - - - - ptree-bf=0; taller=1; else if (ptree-bf=0) ptree-bf=1; taller=0; else p1=ptree-lchild; if(p1-bf=0) ptree-lchild=p1-rchild; p1-rchild=ptree; p1-bf=-1; ptree-bf=1; ptree=p1; taller=0; else if (p1-bf=1) ptree-lchild=p1-rchild; p1-rchild=ptree; ptree-bf=p1-bf=0; ptree=p1; taller=

11、1; else p2=p1-rchild; p1-rchild=p2-lchild; p2-lchild=p1; ptree-lchild=p2-rchild; p2-rchild=ptree; if (p2-bf=0) ptree-bf=0; p1-bf=0; else if (p2-bf=1) ptree-bf=-1; p1-bf=0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 13 页 - - - - - - - - - else ptree-bf=0; p1

12、-bf=1; p2-bf=0; ptree=p2; taller=1; void delete2(pnode q,pnode &r,int &taller) if (r-rchild=NULL) q-data=r-data; q=r; r=r-lchild; delete q; taller=1; else delete2(q,r-rchild,taller); if(taller=1) right2(r,taller); int delete1(pnode &ptree,char x10,int &taller) int k; pnode q; if(ptree=NULL) return 0

13、; else if (strcmp(x,ptree-data.NO)lchild,x,taller); if(taller=1) left2(ptree,taller); return k; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 13 页 - - - - - - - - - else if (strcmp(x,ptree-data.NO)0) k=delete1(ptree-rchild,x,taller); if(taller=1) right2(ptree,

14、taller); return k; else q=ptree; if (ptree-rchild=NULL) ptree=ptree-lchild; delete q; taller=1; else if (ptree-lchild=NULL) ptree=ptree-rchild; delete q; taller=1; else delete2(q,q-lchild,taller); if(taller=1) left2(q,taller); ptree=q; return 1; void create(pnode &ptree,int n) int j; Elemtype e; pri

15、ntf( 输入学生信息:姓名,学号,生日,班级,性别n); for(int i=0;ilchild); printf(%-10s %-10s %-10s %-10s %-10sn,ptree-data.name,ptree-data.NO,ptree-data.birt,ptree-data.clas,ptree-data.sex); display(ptree-rchild); void find(pnode ptree,char *ch) if(ptree) if (strcmp(ptree-data.name,ch)=0) printf( 姓名学号生日班级性别 n); printf(%-

16、10s %-10s %-10s %-10s %-10snn,ptree-data.name,ptree-data.NO,ptree-data.birt,ptree-data.clas,ptree-data.sex); return ; else find(ptree-lchild,ch); find(ptree-rchild,ch); void save(pnode ptree,FILE *p) if (ptree) save(ptree-lchild,p); p=fopen(student.txt,a); fprintf(p,%st%st%st%st%sn,ptree-data.name,p

17、tree-data.NO,ptree-data.birt,ptree-data.clas,ptree-data.sex); fclose(p); save(ptree-rchild,p); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 13 页 - - - - - - - - - void read(pnode &ptree,FILE *p) int j; char c; Elemtype e; if(p=fopen(student.txt,r)=NULL) retur

18、n ; while(c=fgetc(p)!=EOF) fscanf(p,%s%s%s%s%s,e.name,e.NO,e.birt,e.clas,e.sex); insert(ptree,e,j); fclose(p); void Print(pnode ptree,int indent) if (ptree = NULL) return; for(int i = 0; i data.name,ptree-data.NO,ptree-data.birt,ptree-data.clas,ptree-data.sex); Print(ptree-lchild, indent+1); Print(p

19、tree-rchild, indent+1); void change(pnode ptree,Elemtype e) if (ptree=NULL) return ; else if (strcmp(ptree-data.NO,e.NO)=0) ptree-data=e; return; else 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 13 页 - - - - - - - - - change(ptree-lchild,e); change(ptree-rc

20、hild,e); void male(pnode ptree) char m2=m; if (ptree) male(ptree-lchild); if(strcmp(ptree-data.sex,m)=0) printf(%-10s %-10s %-10s %-10s %-10sn,ptree-data.name,ptree-data.NO,ptree-data.birt,ptree-data.clas,ptree-data.sex); male(ptree-rchild); void fmale(pnode ptree) char m2=f; if (ptree) fmale(ptree-

21、lchild); if(strcmp(ptree-data.sex,m)=0) printf(%-10s %-10s %-10s %-10s %-10sn,ptree-data.name,ptree-data.NO,ptree-data.birt,ptree-data.clas,ptree-data.sex); fmale(ptree-rchild); void main() int z; FILE *p=NULL; pnode ptree=NULL; printf( 请选择 :n1-载入学生信息n2- 重新创建信息n); scanf(%d,&z); if(z=1) read(ptree,p)

22、; Elemtype e,a; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 13 页 - - - - - - - - - int t=1; char ch10,x10; int j,k,n; while (t) printf(* 平衡二叉树实现学生基本信息管理*n); printf(*nn); printf(1-创建 n); printf(2-插入 n); printf(3-删除 n); printf(4-修改 n); printf(5-查找 n); printf(

23、6-显示 n); printf(7-排序 n); printf(8-分组 n); printf(9-保存 n); printf(0-退出 n); printf( 输入操作选项(0-9)n); scanf(%d,&k); switch (k) case 1: printf( 输入要创建的学生数n); scanf(%d,&n); create(ptree,n); break; case 2: printf( 输入学生信息: 姓名,学号,生日,班级,性别n); scanf(%s%s%s%s%s,e.name,e.NO,e.birt,e.clas,e.sex); insert(ptree,e,j);

24、break; case 3: printf( 输入要删除的学生的学号n); scanf(%s,x); delete1(ptree,x,j); break; case 4: printf( 输入修改后的信息: 姓名,学号,生日,班级,性别n); scanf(%s%s%s%s%s,a.name,a.NO,a.birt,a.clas,a.sex); change(ptree,a); break; case 5: printf( 输入要查找的学生姓名n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - -

25、 - - 第 12 页,共 13 页 - - - - - - - - - scanf(%s,ch); find(ptree,ch); printf(n); break; case 6: printf( 凹入显示 :nn); Print(ptree,0); printf(n); break; case 7: printf( 按学号排序结果如下:nn); printf( 姓名学号生日班级性别 n); display(ptree); printf(n); break; case 8: printf( 男生基本信息如下:nn); male(ptree); printf(n); printf( 女生基本信息如下:nn); fmale(ptree); printf(n); break; case 9: p=fopen(student.txt,wt); fprintf(p,n); fclose(p); save(ptree,p); printf( 学生信息已存入文件nn); break; case 0: printf( 谢谢使用,再见n); t=0; break; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 13 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁