数据结构栈和队列上机报告资料.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构 栈和队列一 上机的目的和要求实验目的:1.??掌握实现栈/队列的基本操作方法2.??掌握栈的基本操作:建栈,Push,Pop等运算在顺序存储上的实现3.?掌握队列的基本操作:建队列,入队,出队等运算在顺序存储结构上的实现队列的实验参照栈编程实现。实验报告要求:1.上机前完成所有的函数编写2.??实验记录部分填写编写主函数调用所写所有函数的屏幕输出3.??实验总结部分填写对该次实验所编写函数的运行情况,和在实验过程中对栈的认识和实现情况? 二 基本知识和原理??栈和队列是两种常用的数据结构,栈和队列是操作受限的线性表,栈和队列的数据元素具有单一的前驱和后继的线性关系;栈和队列又是两种重要的抽象数据类型。??栈是限定在表尾进行插入和删除操作的线性表允许插入和删除的一端为栈顶,另一端为栈底,出栈元素只能是栈顶元素,后进先出,相邻元素具有前驱与后继关系。??队列是只允许在一端进行插入操作,在另一端进行删除操作的线性表。允许插入的一端为队尾,允许删除的一端为队头,先进先出,相邻元素具有前驱与后继关系。 三 程序算法分析及实现代码#includestdio.h#includeconio.h#defineMaxSize 100 /*栈中的元素的最大个数*/typedefintElemType;typedefstruct{ElemType data[MaxSize];/*存放堆栈的数组*/int top;/*栈顶元素*/}Stack,*S;/*堆栈的初始化*/void InitStack(Stack *S){/*指向的是最顶端的元素 取值范围为从0~MaxSize-1 为-1时说明为空栈*/S-top=-1;}int StackEmpty(SqStack *s) //判断是否为空 {if(s-top==s-base){return TRUE;}else{return 0;}}int GetTop(SqStack* s,int *e) //取栈顶 {//若栈不空,则用e返回S的栈顶元素,并返回OK;否则返回ERRORif(s-top==s-base){return ERROR;}*e=*(s-top-1);return 1;}int Push(SqStack *s,inte) //进栈{//插入元素e为新的栈顶元素if(s-top-s-base=s-stacksize){//栈满,追加存储空间 s-base=(int *)malloc(SIZE*sizeof(int));if(!s-base) exit(OVERFLOW);s-top=s-base + s-stacksize;s-stacksize +=SIZE;}*(s-top)++=e;return 1;}int Pop(SqStack *s ,int *e)//出栈{//若栈不空,则删除S的栈顶元素,用e返回其值,并返回OK;否则返回ERRORif(s-base == s-top)return ERROR;*e = *--s-top;return 1;}int main ( ){SqStack sq;InitStack(sq);int e;int N;int k;int n=0;Z:{printf(\n\t********************************************);printf(\n\t*** 请你输入相应的操作序号进行操作 ***);printf(\n\t***1.是否空 ***);printf(\n\t***2.取栈顶元素 ***);printf(\n\t***3.进栈 ***);printf(\n\t***4.出栈 ***);printf(\n\t***0. 退出 ***\n); printf(\t********************************************);printf(\n请选择功能:);scanf(%d,k);switch(k){case 1:if(StackEmpty(sq)){printf(该栈为空!);}else{printf(该栈非空!);}goto Z;break;case 2:GetTop(sq, e);printf(栈顶元素为:%d, e);goto Z;break;case 3:printf(请输入要进栈的元素:);scanf(%d, e);Push(sq, e);goto Z;break;case 4:Pop(sq,e);printf(%d

文档评论(0)

502992 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档