欢迎来到天天文库
浏览记录
ID:55964825
大小:122.55 KB
页数:7页
时间:2020-06-18
《双向共享栈的操作.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、兰州城市学院实验报告院、系:信息工程学院计算机科学与技术姓名刘彦春学号20090801050112专业、班级(教育091本)课程名称数据结构——C语言描述实验室名称微机实验室实验名称共享栈的存储结构及其实现日期、时间2011年4月28日同组者无天气晴气压室(气)温实验报告内容:1.实验目的本次实验的主要目的是:(1)理解共享栈的概念;(2)掌握共享栈的存储结构的特点和数据结构的定义;(3)熟练掌握共享栈的基本操作的实现;(4)通过共享栈的实际应用,提高学生分析和解决实际问题的能力。2.实验内容本实验的内容包括:(1)掌握串的链式存储结构,包括:初始化共享栈(*InitStack)、进栈(Pus
2、h)、出栈(Pop)、判断栈是否为空(IsEmptyStack)、清空栈(ClearStack)等基本操作。(2)主控程序设计;3.实验要求(1)各基本操作设计要求如下:●DqStack*InitStack()功能:初始化共享栈。●intPush(DqStack*S,ElemTypee,inti)功能:把数据元素e压入i号堆栈。●intPop(DqStack*S,ElemType*e,inti)功能:从i号堆栈中弹出栈顶元素并送到e中。●intIsEmptyStack(DqStack*S)功能:判断栈是否为空,若为空返回1,若不是返回0。●intClearStack(DqStack*S)功能:
3、清空栈的内容。4.实验程序清单#include#include#include#defineMaxsize100#defineOK1#defineTURE1#defineFALSE0typedefintElemType;第1页,共7页typedefstruct{ElemTypes[Maxsize];inttop1;inttop2;}stack;stack*st;intinttStack()/*共享栈的初始化*/{st=(stack*)malloc(sizeof(stack));if(st==NULL)returnFALSE;st->to
4、p1=-1;st->top2=Maxsize;returnTURE;}intpush(inti,ElemTypex){if(st->top1==st->top2-1)printf("上溢出!");if(i==1)/*对第一个栈进行操作*/{st->top1++;st->s[st->top1]=x;}if(i==2)/*对第二个栈进行操作*/{st->top2--;st->s[st->top2]=x;}if(i!=1&&i!=2)printf("参数错误!");/*参数错误*/returnOK;}intpop(inti){intx;if(i==1)/*对第一个栈进行操作*/{if(st-
5、>top1==0)printf("栈1下溢出!");elsex=st->s[st->top1--];}第2页,共7页if(i==2)/*对第二个栈进行操作*/{if(st->top2==Maxsize)printf("栈2下溢出!");elsex=st->s[st->top2++];}if(i!=1&&i!=2)printf("参数错误!");/*参数错误*/returnx;}voidsetnull(inti)/*置空栈*/{if(i==1)st->top1=-1;if(i==2)st->top2=Maxsize;if(i!=1&&i!=2)printf("参数错误!");/*
6、参数错误*/}inttop(inti)/*读栈顶元素*/{intx;if(i==1){if(st->top1<0)printf("栈1无栈顶元素!");else{x=st->s[st->top1];printf("栈顶元素为:%d",x);}}if(i==2){if(st->top2>Maxsize-1)printf("栈2无栈顶元素!");else{x=st->s[st->top2];printf("栈顶元素为:%d",x);}}if(i!=1&&i!=2)第3页,共7页printf("参数错误!");/*参数错误*/returnOK;}voidsempty()/*判定栈是否为空
7、*/{if(st->top1<0)printf("栈1为空!");elseprintf("栈1不为空!");if(st->top2>Maxsize+1)printf("栈2为空!");elseprintf("栈2不为空!");}ElemTypeptop(inti)/*取栈顶元素*/{ElemTypex;if(i!=1&&i!=2)printf("参数错误!");/*参数错误*/
此文档下载收益归作者所有