版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构与算法数据结构与算法全文共19页,当前为第1页。数据结构与算法全文共19页,当前为第1页。数据结构实验报告题目:线性表班级:网络工程1401班学号:1408020106指导教师:高峰日期:2016/7/6数据结构与算法全文共数据结构与算法全文共19页,当前为第2页。实验一:线性表一:实验要求掌握数据结构中线性表的基本概念。熟练掌握线性表的基本操作:创建、插入、删除、查找、输出、求长度及合并并运算在顺序存储结构撒谎能够的实验。熟练掌握链表的各种操作和应用。二.实验内容1.编程实现在顺序存储的有序表中插入一个元素(数据类型为整型)。2.编程实现把顺序表中从i个元素开始的k个元素删除(数据类型为整型)。三:实验过程及步骤源代码:#include<stdio.h>#include<malloc.h>#defineLIST_INIT_SIZE100#defineLISTINCREMENT10typedefstruct{int*elem;intlength;intlistsize;}SqList;//SqListsq;数据结构与算法全文共19页,当前为第3页。voi数据结构与算法全文共19页,当前为第3页。{sq->elem=(int*)malloc(LIST_INIT_SIZE*sizeof(int));sq->length=0;sq->listsize=LIST_INIT_SIZE;printf("---申请空间成功---!\n");}voidGetElem(SqList*sq,inti)//获取第i位置元素的值{int*p;p=&(sq->elem[i-1]);printf("%d",*p);printf("\n");}intListInsert_Sq(SqList*sq,inti,inta)//在i位置之前插入a{int*p,*q;if(i<=0||i>sq->length+1){数据结构与算法全文共19页,当前为第4页。数据结构与算法全文共19页,当前为第4页。return0;}if(sq->length>=sq->listsize){int*newbase=(int*)realloc(sq->elem,(sq->listsize+LISTINCREMENT)*sizeof(int));if(!newbase){printf("申请空间溢出\n");return0;}sq->elem=newbase;sq->listsize+=LISTINCREMENT;}p=&(sq->elem[i-1]);//p指向第i位置的元素q=&(sq->elem[sq->length-1]);//q指向最后一个元素for(;q>=p;--q)*(q+1)=*q;*p=a;++sq->length;数据结构与算法全文共19页,当前为第5页。数据结构与算法全文共19页,当前为第5页。}intListDelete_Sq(SqList*sq,inti)//删除i位置上的值{int*p,*q;if(i<1||i>sq->length)return0;p=&(sq->elem[i-1]);//p指向第i位置的元素q=sq->elem+sq->length-1;//q指向最后一个元素for(++p;p<=q;++p){*(p-1)=*p;}--sq->length;return1;}voidvisit(SqList*sq)//输出数据{inti=1;for(;i<=sq->length;i++){数据结构与算法全文共19页,当前为第6页。int数据结构与算法全文共19页,当前为第6页。p=&sq->elem[i-1];printf("%d",*p);printf("");}}voidmain(){inti=1,a=0,boo=1,number=0;SqLists,*sq;sq=&s;InitList_Sq(sq);printf("初始化空表\n");printf("输入数据个数:\n");scanf("%d",&number);printf("输入%d个数据:",number);printf("\n");for(;i<=number;i++){scanf("%d",&a);if(boo=ListInsert_Sq(sq,i,a)){数据结构与算法全文共19页,当前为第7页。数据结构与算法全文共19页,当前为第7页。}else{printf("---插入不成功,重新插入---!\n");i=i-1;}}printf("输出所有元素\n");visit(sq);printf("\n");printf("输出删除的位置:");scanf("%d",&a);if(boo=ListDelete_Sq(sq,a)){printf("---数据删除成功!---\n");}else{printf("---没有删除成功---\n");}printf("输出所有元素:\n");visit(sq);数据结构与算法全文共19页,当前为第8页。数据结构与算法全文共19页,当前为第8页。printf("输出要显示数据的位置:");scanf("%d",&a);printf("输出%d位置数值\n",a);if(a<0||a>sq->length){printf("---输出位置的数据不存在---\n");}else{GetElem(sq,a);}}步骤:1.初始化空表2.顺序插入数据后输出所有元素3.选择删除位置,删除数据后输出所有元素4.选择查看的数据位置,输出选择查看的数据数据结构与算法全文共19页,当前为第9页。数据结构与算法全文共19页,当前为第9页。分析:本程序在实现顺序存储插入以及删除i个元素开始的k个元素删除(数据类型为整型)。之外在删除、查看是实时输出结果,并且可以查看希望显示数据的位置。数据结构与算法全文共数据结构与算法全文共19页,当前为第10页。数据结构实验报告题目:树班级:网络工程1401班学号:1408020106指导教师:高峰日期:2016/7/6实验二:树一:实验要求掌握二叉树,二叉树排序数的概念和存储方法。数据结构与算法全文共19页,当前为第11页。数据结构与算法全文共19页,当前为第11页。熟练掌握编写实现树的各种运算的算法。二.实验内容统计一棵二叉树中每种类型节点数(度为0/1/2的节点数)。三:实验过程及步骤#include<stdio.h>#include<malloc.h>#include<stdlib.h>typedefstructBitNode{intdata;structBitNode*lchild,*rchild;}BitNode,*BitTree;BitTreeBitTreeInit(){BitTreeBT;BT=(BitNode*)malloc(sizeof(BitNode));BT=NULL;returnBT;}BitTreeBitTreeCreat(BitTree&BT){intch;printf("请输入节点的内容,输入0时结束建立!\n");scanf("%d",&ch);数据结构与算法全文共19页,当前为第12页。数据结构与算法全文共19页,当前为第12页。BT=NULL;else{BT=(BitTree)malloc(sizeof(BitNode));BT->data=ch;BitTreeCreat(BT->lchild);BitTreeCreat(BT->rchild);}returnBT;}voidBitTreeEmpty(BitTreeBT){if(BT==NULL)printf("树为空!\n");elseprintf("树非空!\n");}voidPreOrderTraverse(BitTreeBT){if(BT!=NULL){printf("树结点的内容为:%d\n",BT->data);PreOrderTraverse(BT->lchild);数据结构与算法全文共19页,当前为第13页。数据结构与算法全文共19页,当前为第13页。}}voidInOrderTraverse(BitTreeBT){if(BT!=NULL){InOrderTraverse(BT->lchild);printf("树结点的内容为:%d\n",BT->data);InOrderTraverse(BT->rchild);}}voidPostOrderTraverse(BitTreeBT){if(BT!=NULL){PostOrderTraverse(BT->lchild);PostOrderTraverse(BT->lchild);printf("树结点的内容为:%d\n",BT->data);}}intcount(BitTreeBT){if(BT==NULL)return0;数据结构与算法全文共19页,当前为第14页。数据结构与算法全文共19页,当前为第14页。return(count(BT->lchild)+count(BT->rchild)+1);}intBinTreeDepth(BitTreeBT){inti=1,j=1;if(BT==NULL)return0;else{i=BinTreeDepth(BT->lchild);j=BinTreeDepth(BT->rchild);if(i>j)return(i+1);elsereturn(j+1);}}voidBinTreeClear(BitTree&BT){if(BT){if(BT->lchild)数据结构与算法全文共19页,当前为第15页。数据结构与算法全文共19页,当前为第15页。if(BT->rchild)BinTreeClear(BT->rchild);free(BT);BT=NULL;}}main(){inti=1,j,l;BitTreeBT;while(i!=0){printf("-----------------欢迎使用-------------------\n");printf("请选择要进行的操作\n");printf("1.初始化一棵树2.建立一棵树3.判断树是否为空\n");printf("4.按前序遍历树5.按中序遍历树6.按后序遍历树\n");printf("7.求树的深度8.求树的结点数9.把树清空\n");printf("0.退出操作界面\n");数据结构与算法全文共19页,当前为第16页。printf("-----------------数据结构与算法全文共19页,当前为第16页。scanf("%d",&j);switch(j){case1:BT=BitTreeInit();printf("树已经初始化!\n");break;case2:BitTreeCreat(BT);break;case3:BitTreeEmpty(BT);break;case4:PreOrderTraverse(BT);break;case5:InOrderTraverse(BT);break;case6:PostOrderTraverse(BT);break;case7:l=BinTreeDepth(BT);printf("树的深度为:%d\n",l);break;case8:l=count(BT);printf("树的结点数为:%d\n",l);break;数据结构与算法全文共19页,当前为第17页。case9:B数据结构与算法全文共19页,当前为第17页。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年非竞争保密协议
- 2024年项目合作外协合同2篇
- 2024年装饰设计服务合同5篇
- 2024私人合伙健康养老产业股权分配与运营管理协议2篇
- 2024年项目策划共同开发合同3篇
- 2024年:跨境电商平台建设与运营合同
- 2025年度智能交通系统研发与应用合同6篇
- 2024年游乐场地租赁合同附场地设施租赁及运营协议
- 2024年物业监管下业主装修合作合同版
- 教师业务档案管理办法
- 【APP违规收集个人信息的法律问题分析9800字(论文)】
- 商品房预售合同签约证明和预告登记申请书
- 质量管理体系成熟度评估表
- 国际疾病分类肿瘤学专辑第3版应用课件
- 单体调试及试运方案
- 2023-2024学年浙江省杭州市城区数学四年级第一学期期末学业水平测试试题含答案
- 五星级酒店市场调研报告
- 车辆剐蹭私下解决协议书(3篇)
- 网球技术与战术-华东师范大学中国大学mooc课后章节答案期末考试题库2023年
- 2022-2023学年衡水市深州市小升初数学高频考点检测卷含答案
- 现代科学技术概论知到章节答案智慧树2023年成都师范学院
评论
0/150
提交评论