数据结构实验报告范本(完整版)_第1页
数据结构实验报告范本(完整版)_第2页
数据结构实验报告范本(完整版)_第3页
数据结构实验报告范本(完整版)_第4页
数据结构实验报告范本(完整版)_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、报告编号:YT-FS-7075-90数据结构实验报告范本(完整版)AfterCompletingTheTaskAccordingToTheOriginalPlan,AReportWillBeFormedToReflectTheBasicSituationEncountered,RevealTheExistingProblemsAndPutForwardFutureIdeas.互惠互利共同繁荣MutualBenefitAndCommonProsperity专业报告模板I REPORT TEMPLATE数据结构实验报告范本(完整版)备注:该报告书文本主要按照原定计划完成任务后形成报告,并反映遇到的

2、基本情况、实际取得的成功和过程中取得的经验教训、揭露存在的问题以及提出今后设想。文档可根据实际情况进行修改和使用。一、实验目的及要求1)掌握栈和队列这两种特殊的线性表,熟悉它们的特性,在实际问题背景下灵活运用它们。本实验训练的要点是“栈”和“队列”的观点;二、实验内容1)利用栈,实现数制转换。2)利用栈,实现任一个表达式中的语法检查(选做)。3)编程实现队列在两种存储结构中的基本操作(队列的初始化、判队列空、入队列、出队列);三、实验流程、操作步骤或核心代码、算法片段顺序栈:StatusInitStack(SqStack&S)S.base=(ElemType*)malloc(STACK

3、_INIT_SIZE*sizeof(ElemType);if(!S.base)returnERROR;S.top=S.base;S.stacksize=STACK_INIT_SIZE;returnOK;)StatusDestoryStack(SqStack&S)free(S.base);returnOK;)StatusClearStack(SqStack&S)S.top=S.base;returnOK;)StatusStackEmpty(SqStackS)if(S.base=二Stop)returnOK;returnERROR;)intStackLength(SqStackS)

4、returnS.top-S.base;)StatusGetTop(SqStackS,ElemType&e)if(S.top-S.base>=S.stacksize)S.base=(ElemType*)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(ElemType);if(!S.base)returnERROR;S.top=S.base+S.stacksize;S.stacksize+=STACKINCREMENT;)*S.top+=e;returnOK;)StatusPush(SqStack&S,ElemTypee)

5、if(S.top-S.base>=S.stacksize)S.base=(ElemType*)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(ElemType);if(!S.base)returnERROR;S.top=S.base+S.stacksize;5. stacksize+=STACKINCREMENT;)*S.top+=e;returnOK;)StatusPop(SqStack&S,ElemType&e)if(S.top=S.base)returnERROR;e=*-S.top;returnOK;)Stat

6、usStackTraverse(SqStackS)ElemType*p;p=(ElemType*)malloc(sizeof(ElemType);if(!p)returnERROR;p=S.top;while(p!=S.base)/S.top上面一个.p;printf(/z%d,*p);)returnOK;)StatusCompare(SqStack&S)intflag,TURE=OK,FALSE=ERROR;ElemTypee,x;InitStack(S);flag=0K;printf(请输入要进栈或出栈的元素:);while(x=getchar)!=,&&flag)

7、switch(x)case'(':case':case'':if(Push(S,x)=0K)printf(括号匹配成功!nrT);break;case'):if(Pop(S,e)=ERR0R|e!='(')printf(没有满足条件n);flag二FALSE;)break;case:if(Pop(S,e)=ERR0R|e!='')flag二FALSE;break;case':if(Pop(S,e)=ERRORI|e!=,)flag=FALSE;break;)if(flag&&x='#

8、'&&StackEmpty(S)returnOK;elsereturnERROR;)链队列:StatusInitQueue(LinkQueue&Q)Q.front=Q.rear=(QueuePtr)malloc(sizeof(QNode);if(!Q.front)returnERROR;Q.front->next=NULL;returnOK;)StatusDestoryQueue(LinkQueue&Q)while(Q.front)Q.rear=Q.front一next;free(Q.front);Q.front=Q.rear;)returnOK;

9、)StatusQueueEmpty(LinkQueue&Q)if(Q.front->next=二NULL)returnOK;returnERROR;)StatusQueueLength(LinkQueueQ)inti=0;QueuePtrp,q;p=Q.front;while(p->next)i+;p=Q.front;q=p->next;P=Q;)returni;)StatusGetHead(LinkQueueQ,ElemType&e)QueuePtrp;p=Q.front->next;if(!p)returnERROR;e=p->data;ret

10、urne;)StatusClearQueue(LinkQueue&Q)QueuePtrp;while(Q.front->next)p=Q.front->next;free(Q.front);Q.front=p;)Q.front->next=NULL;Q.rear->next=NULL;returnOK;)StatusEnQueue(LinkQueue&Q,ElemTypee)QueuePtrp;p=(QueuePtr)malloc(sizeof(QNode);if(!p)returnERROR;p->data=e;p->next=NULL;Q

11、.rear->next=p;Q.rear=p;/p->next为空returnOK;)StatusDeQueue(LinkQueue&Q,ElemType&e)QueuePtrp;if(Q.front=Q.rear)returnERROR;p=Q.front->next;e=p->data;Q.front->next=p->next;if(Q.rear=p)Q.rear=Q.front;只有一个元素时(不存在指向尾指针)free(p);returnOK;)StatusQueueTraverse(LinkQueueQ)QueuePtrp,q;i

12、f(QueueEmpty(Q)=0K)printf(这是一个空队列!n);returnERROR;)p=Q.front->next;while(p)Q=P;printf(,z%ddata);q=p->next;P=Q;)returnOK;)循环队列:StatusInitQueue(SqQueue&Q)Q.base=(QElemType*)malloc(MAXQSIZE*sizeof(QElemType);if(!Q.base)exit(OWERFLOW);Q.front=Q.rear=0;returnOK;)StatusEnQueue(SqQueue&Q,QElem

13、Typee)if(Q.rear+l)%MAXQSIZE=Q.front)returnERROR;Q.baseQ.rear=e;Q.rear=(Q.rear+l)%MAXQSIZE;returnOK;)StatusDeQueue(SqQueue&Q,QElemType&e)if(Q.front=Q.rear)returnERROR;e=Q.baseQ.front;Q.fronts(Q.front+l)%MAXQSIZE;returnOK;)intQueueLength(SqQueueQ)return(Q.rear-Q.front+MAXQSIZE)%MAXQSIZE;)StatusDestoryQueue(SqQueue&Q)free(Q.base);returnOK;)StatusQueueEmpty(SqQueueQ)判空if(Q.front=Q.rear)returnOK;returnERROR;

温馨提示

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

评论

0/150

提交评论