1 / 12
文档名称:

数据结构实验报告技术总结.docx

格式:docx   大小:118KB   页数:12页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据结构实验报告技术总结.docx

上传人:s0012230 2017/4/26 文件大小:118 KB

下载得到文件列表

数据结构实验报告技术总结.docx

文档介绍

文档介绍:数据结构实验报告一. 题目要求 1) 编程实现二叉排序树,包括生成、插入,删除; 2) 对二叉排序树进行先根、中根、和后根非递归遍历; 3) 每次对树的修改操作和遍历操作的显示结果都需要在屏幕上用树的形状表示出来。 4 )分别用二叉排序树和数组去存储一个班(50 人以上) 的成员信息( 至少包括学号、姓名、成绩3项), 对比查找效率,并说明在什么情况下二叉排序树效率高, 为什么? 二. 解决方案对于前三个题目要求,我们用一个程序实现代码如下#include<> #include <> #include <> #include "" // 栈的头文件,没有用上 typedef int ElemType; // 数据类型 typedef int Status; // 返回值类型// 定义二叉树结构 typedef struct BiTNode{ ElemType data; // 数据域 struct BiTNode *lChild, *rChild;// 左右子树域}BiTNode, *BiTree; int InsertBST(BiTree &T,int key){// 插入二叉树函数 if(T==NULL) {T= (BiTree)malloc(sizeof(BiTNode)); T->data=key; T->lChild=T->rChild=NULL; return 1; } else if(key<T->data){ InsertBST(T->lChild,key); } else if(key>T->data){ InsertBST(T->rChild,key); } else return 0; } BiTree CreateBST(int a[],int n){// 创建二叉树函数 BiTree bst=NULL; int i=0; while(i<n){ InsertBST(bst,a[i]); i++; } return bst; } int Delete(BiTree &T) { BiTree q,s; if(!(T)->rChild){ // 右子树为空重接它的左子树 q=T; T=(T)->lChild; free(q); }else{ if(!(T)->lChild){ // 若左子树空则重新接它的右子树 q=T; T=(T)->rChild; }else{ q=T; s=(T)->lChild; while(s->rChild){ q=s; s=s->rChild; } (T)->data=s->data; //s 指向被删除结点的前驱 if(q!=T) q->rChild=s->lChild; else q->lChild=s->lChild; free(s); }} return 1; } // 删除函数,在 T中删除 key 元素 int DeleteBST(BiTree &T,int key){ if(!T) return 0; else{ if(key==(T)->data) return Delete(T); else{ if(key<(T)->data) return DeleteBST(T->lChild,key); else return DeleteBST(T->rChild,key); }} } int PosttreeDepth(BiTree T){// 求深度 int hr,hl,max; if(!T==NULL){ hl=PosttreeDepth(T->lChild); hr=PosttreeDepth(T->rChild); max=hl>hr?hl:hr; return max+1; } else return 0; } void printtree(BiTree T,int nlayer){// 打印二叉树 if(T==NULL) return ; printtree(T->rChild,nlayer+1); for(int i=0;i<nlayer;i++){ printf(" "); } printf("%d\n",T->data); printtree(T->lChild,nlayer+1); } void PreOrderNoRec(BiTree root)// 先序非递归遍历{ BiTree p=root; BiTree stack[50]; int num=0; while(NULL!=p||num>0) { while(NULL!=p) { printf("%d ",p->data); stack[num++]=p; p=p->lChild; } num--; p=stack[num];

最近更新

2023年四川省乐山市犍为县定文镇(社区工作人.. 277页

2023年广西兴宾区糖业发展局(双高办)招聘编.. 279页

2023年浙江省嘉兴市港航管理服务中心招聘非编.. 280页

2023年贵州省晴隆县事业单位招聘300人高频考点.. 282页

2024安徽合肥市公共就业人才服务管理中心见习.. 279页

2024山西长治长子县事业单位招聘97人历年高频.. 278页

2024年中日友好环境保护中心招聘历年高频难、.. 283页

2023年四川省泸州市江阳区通滩镇金雨滩村(社.. 283页

2023年陕西省西咸新区泾河新城下半年招聘180人.. 277页

2024安徽池州市医疗保障局选聘医疗保障社会监.. 284页

2023年四川省甘孜州康定市麦崩乡高吾村(社区.. 282页

2023年国网北京经济技术研究院招聘毕业生(第二.. 277页

2023年广西河池市审计局招聘1人高频考点题库(.. 287页

2023年河南长葛市民政局殡仪馆火化人员招聘5人.. 280页

2023年浙江省绍兴市诸暨市浣东街道黄徐村(社.. 277页

2023年福建省漳州市招商局事业单位招聘12人高.. 276页

2023年黑龙江省哈尔滨市纪委监委所属事业单位.. 280页

2024下半年四川省青川县事业单位招聘14人历年.. 277页

环保工作开展情况汇报 31页

2023年银行优秀党员典型事迹材料5篇 8页

易卜仙人诀 18页

菜品烹调知识培训 40页

人教版精通英语五年级下册Lesson15 教学设计 5页

volvo 沃尔沃配件 2页

餐厨废弃食用油脂管理制度 2页

高一入学测试说明 7页

Unitwisdomofbearwood熊树林的智慧-PPT课件 56页

配合审计工作方案 88页