数据结构教学师范计算机学院_第1页
数据结构教学师范计算机学院_第2页
数据结构教学师范计算机学院_第3页
数据结构教学师范计算机学院_第4页
数据结构教学师范计算机学院_第5页
已阅读5页,还剩53页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验性质、同组人、实验日期、以及实验报告中的一至五项;开。(80-89(60-69(59(学生实验后填写(分数或等级123456789、实验报告、同组人□基本操作综合 实验预习□实验操作□实验结果□实验报告□CCCPC1台VC6.0 #ifndef_FUNC_H#define_FUNC_H#define1#define0#define1#define0#defineOVERFLOW-typedefintElemType;ElemTypeDestroyTriplet(Triplet&T);ElemTypePut(Triplet&T,inti,ElemTypee);ElemTypeMax(TripletT,ElemType&e);ElemTypeAveValue(TripletT,ElemTypev1,ElemTypev2,ElemTypev3,ElemType&e);#include"h1.h"{T=(ElemType*)malloc(3*sizeof(ElemType));if(!T)T[0]=v1;T[1]=T[2]=return}{T=return}{if(i<1||i>e=T[i-1];return}{{if(i<1||i>T[i-1]=e;return}{return} v3,ElemType&e){e=(v1+v2+v3)/3;returnOK;}#include"h1.h"int{charselect;intprintf("printf("输入三元组的三个元素scanf("%d%d{printf("1:i个元素\n");printf("2:求最大值\n");printf("3:置换第i个元素\n");printf("4:求三个元素的平均值!\n");switch(select){caseif(Get(T,i,e)==printf("i值不合法printf("\n第%d个元素的值为:%d\n",i,e);caseprintf("\n最大值是:%d\n",e);caseif(Put(T,i,e)==ERROR) printf("i值不合法\n");printf("\n置换第%d个元素后的3个元素分别case'4':printf("\n该三元组三个元素的平均值为d.\n",e);case}}while(select!=}return}return实验报告同组人□基本操作综合 实验预习□实验操作□实验结果□实验报告□C(特别是函数参数、3)1)编程实现线性表两种结构中的基本操作的实现(线性表的创建、插PC1台VC6.0 #ifndef_FUNC_H#define1010typedefint{ElemType*elem;// intlength;intElemTypeListInsert_Sq(SqList&L,inti,ElemTypee);ElemTypePriorElem(SqListL,ElemTypee);ElemTypeNexem(SqListL,ElemTypee);ElemTypeGet(SqListL,inti,ElemType&e);ElemTypePut(SqListL,inti,ElemTypee);ElemTypeListTraverse(SqListL);ElemTypeBack(SqListL);#includestdlib.h>#includestdio.h>#includeh1.h"ElemTypeInitList_Sq(SqList&L)//{{Lelem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));if(!L.elem)exit(OVERFLOW);L.length=returnOK;}ElemTypeListInsert_Sq(SqList&L,inti,ElemTypee)//{if(i<1||i>L.length+1)returnERROR;if(L.length>=L.listsize){L.elem=(ElemType*)realloc(L.elem,(L.listsize+LISTCREMENT)*sizeof(ElemType));L.listsize+=LISTCREMENT;}ElemType*q=&(L.elem[i-1]);ElemType*p=&(L.elem[L.length-1]);while(p>=q){*(p+1)=*p;}*q=e;}ElemTypeDelet(SqListL,inti,ElemTypee)//{if(i<1||i>L.length+1) ElemType*q=L.elem+i-1;ElemType*p=L.elem+L.length-1;e=*q;while(p>={*(q-1)=*q;}printf("\n被删除的元素是d\n",e);}ElemTypeLocateElem(SqListL,ElemTypee,ElemType&j)//{p=L.elem;j=while(*p!=e&&j<={}if(j==L.length+printf("%d在表中的位置是}ElemTypePriorElem(SqListL,ElemTypee)//{intelem_loc;if(elem_loc==1)printf("该元素的前驱元素是d.\n",L.elem[elem_loc2]);returnOK;}ElemTypeNexem(SqListL,ElemTypee)//{intelem_loc;ifelem_locL.length)printf("该元素为最后一个元素,无后继元素!\n");:%}}{if(i<1||i>L.length)returnERROR;e=L.elem[i-1];printf("\n第%d个元素是}{if(i<1||i>L.length)returnERROR;Lelem[i-1]=e;}ElemTypeListTraverse(SqListL)//{inti=while(i<L.length){}returnOK;}ElemTypeDestroy(SqList&L)//{Lelem=NULL;returnOK;})//{printf("\n回到初始状态n");for(inti=0;i<10;i++)}}#includeh1.h"int{SqListT;inti,elem_loc;for(intj=0;j<10;j++)if(InitList_Sq(T)==for(j=0;j<10;{printf("**1:显示线性表元素 printf("**2:在第i个元素处插入一个元素 printf("**3:删除第i个元素\n");printf("**4:元素e的定位\n");printf("**5:e的直接前驱元素\n");printf("**6:e的直接后继元素\n");printf("**7:取出第i个元素\n");printf("**8:置换第i个元素\n");/*printf("**9:回到初始状态printf("**0:结束!\n");printf("\n请输入选择!\n");switch(select){casecaseif((ListInsert_Sq(T,i,e))==ERROR) printf("i值不合法\n");caseif(Delet(T,i,e)==ERROR) caseprintf("\n输入要查询的数caseprintf("\n输入该元素caseprintf("\n输入该元素Nexem(T,e);casecase'8':for(j=0;j<10;case'0':}}while(select!=}实验报告同组人□基本操作综合 实验预习□实验操作□实验结果□实验报告□;PC1台VC6.0#ifndef_FUNC_H#defineTRUE#defineFALSE#defineOK#defineERROR#defineOVERFLOW-typedefinttypedefstruct{SElemType*top;intstacksize;externStatusStackEmpty(SqStackS);//S为空栈,则返回TURE,返回返回externStatusStackLength(SqStackS);//返回S的元素个数,即栈的长度并返回OK,否则返回ERRORexternStatusPush(SqStack&S,SElemTypee);//插入元素e为新的栈顶元externStatusPop(SqStack&S);//S的栈顶元素,用返回其值,并返回OK;否则返回ERRORexternStatusCompare(charch);//括号匹配#include<stdio.h>#include"h1.h"{S.top=returnOK;}{return}{{return}{returnOK;}return}StatusStackEmpty(SqStackS)//若栈S为空栈,则返回TURE,否则返回{returnreturnreturn}{intreturnlength;}{SElemTypee;return}{{}returnOK;}并返回OK;否则返回ERROR{SElemTypee;return}{intwhile(S.base!={ }}returnOK;}{SqStackS;{}{}returnOK;}#include<stdio.h>#include#includeint{SqStackcharselect;{}{printf("请输入你想往栈里存放的数据(以-1未结束标志 {}}{

、逆序输出堆栈中的元素

、验证堆栈是否为空栈。

printf("7、删除 的栈顶元素,并用 返回

printf("8Ni的数值 括号匹配检 {case{}{}case'2':case{}{}casecasecase{}case'6':case'7':{}case'8':caseSqStackS;charch;boolflag;{{casecasecasecasecasecasecase}}case}}}#include#include#defineX1 1typedefinttypedefint{QElemTypedata;structQNode*next;typedefstruct{QueuePtrStatusClearQueue(LinkQueue&Q);StatusQueueLength(LinkQueue&Q);StatusQueueEmpty(LinkQueueQ);StatusQueueGetHead(LinkQueue&Q,QElemType&e);StatusEnQueue(LinkQueue&Q,QElemTypee);#include1.h"#includestdio.h>#include{Q.front=Q.rear=(QueuePtr)malloc(sizeof(QNode));Q.front->next=NULL;returnOK;}{inti=1;p=Q.front->next;while(p!={p=p->next;}}{{}}{Q.front=Q.rear;returnOK;}{}{returne;}{QueuePtrp=(QueuePtr)malloc(sizeof(QNode));p->data=p->next=NULL;Q.rear->next=p;Q.rear=p;returnOK;}{QueuePtrp;p=Q.front->next;e=p-if(Q.rear==p)Q.rear=}{inti=0;p={p=p-}}int{intm=100000;LinkQueueQ;QElemTypee;while(m!=0){{caseif(InitQueue(Q)==case{}casecasecaseif(QueueEmpty(Q)==ERROR)casecasecasecasecase}}}实验报告同组人□基本操作综合 实验预习□实验操作□实验结果□实验报告□ 掌握特殊矩阵的压缩表示,了解稀疏矩阵的三元表顺序表示及基本PC1台VC6.0#ifndefFUB#define#defineTRUE1#defineFALSE0#defineOK1#defineERROR#defineINFEASIBLE-1#defineOVERFLOW-2typedefintStatus;#defineMAXSIZE12500typedefstruct{inti,j;{intmu,nu,tu;{intscanf("%d%d%d",&M.mu,&M.nu,&M.tu);{}}{intp;{}}}{{intfor(intcol=1;col<=M.nu;col++){{}}}intp;{}}int{return0;}实验报告同组人□基本操作综合 实验预习□实验操作□实验结果□实验报告□二、PC1台VC6.0三、实验流程、操作步骤或代码、算法片#ifndef#define#define #define #define #define #defineOVERFLOW-#include#includetypedefinttypedefint{structBiTNodeStatusCountLeaf(BiTreeT);#include"1.h"{charif(ch==T={if(!(T=(BiTNode*)malloc(sizeof(BiTNode))))T->data=ch;}}{returnOK;}{if}{if}{}{if(T==NULL)num=elseif((T->lchild==NULL)&&(T->rchild)==NULL)num=1;{num1=CountLeaf(T->lchild);num2=CountLeaf(T->rchild);num=num1+num2;}}int{{intx=2;intm;while(x!={{casem=if(m=={}casecasecasecasecase}if(x!=}}}实验报告同组人□基本操作综合 实验预习□实验操作□实验结果□实验报告□建立有向图的邻接表表示,并根据计算顶点的出度和入度,然PC1台VC6.0 #ifndef_HEAD_H#define#defineOK#defineERRORtypedefintStatus;typedefintVRType;typedefenum{DG,UDG}GraphKind;typedefstructArcCell{AdjMatrixarcs; StatusCreateUDG(MGraph&G);StatusCreateDG(MGraph&G);StatusCountTD(MGraphG,charv);StatusPrintGraph(MGraphG);#include"1.h"intif(v==G.vexs[i])}}intcharch=} }ch=getchar();G.arcs[i][j].adj=1;G.arcs[j][i]=G.arcs[i][j];}G.kind=UDG;returnOK;}intcharch=printf("第%d个顶点:",i+1);ch=} }ch=getchar();G.arcs[i][j].adj=1;}G.kind=DG;returnOK;}intcasecaseprintf("\n选择错误请重新输入:");}}inti,j;printf("\n该图的顶点有%3d个,分别为:",G.vexnum); printf("\n该图的弧数为:%3d",G printf("\n该图的种类为:");if(G.kind==}}#include#include"stdio.h"#include"1.h"voidcharv,ch;printf("\n创建一个图:");casecaseprintf("\n输入错误,请重新选择:");}printf("\n请输入选择:");casecaseprintf("\n图中的顶点为:"); ch=getchar();case}}实验报告同组人□基本操作综合 实验预习□实验操作□实验结果□实验报告□1)P

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论