C语言中栈的基本操作.docx

C语言中栈的基本操作.docx

ID:50824072

大小:100.54 KB

页数:5页

时间:2020-03-15

C语言中栈的基本操作.docx_第1页
C语言中栈的基本操作.docx_第2页
C语言中栈的基本操作.docx_第3页
C语言中栈的基本操作.docx_第4页
C语言中栈的基本操作.docx_第5页
资源描述:

《C语言中栈的基本操作.docx》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、#include#include#include//#include#includetypedefintElemType;#defineSTACK_SIZE10#defineSTACK_INCRE3#defineN8//定义栈的存储结构structSqstack{ElemType*base;ElemType*top;intstacksize;};//初始化栈svoidInitStack(Sqstack&s){s.base=(E

2、lemType*)malloc(STACK_SIZE*sizeof(ElemType));if(!s.base)exit(1);s.top=s.base;s.stacksize=STACK_SIZE;printf("栈s已被初始化:");}//向栈s的第i个位置压入元素evoidPush(Sqstack&s,ElemTypee,inti){//staticinti=1;if(s.top-s.base==STACK_SIZE){s.base=(ElemType*)realloc(s.base,(s.stacksize+

3、STACK_INCRE)*sizeof(ElemType));s.top=s.base+s.stacksize;s.stacksize+=STACK_INCRE;}*(s.top)=e;s.top++;printf("向栈中已经成功压入第%d个元素:%d",i,e);//i++;}//对栈s中的每个元素一次调用vi()函数voidStackTreaverse(Sqstacks,void(*vi)(ElemType)){inti=0;i=s.top-s.base;printf("遍历栈s中的%d个元素",i);i=

4、0;while(s.top>s.base){vi(*s.base++);i++;}printf("已经遍历栈中%d元素:",i);}//在屏幕上打印该元素voidprint(ElemTypee){printf("%d",e);}//输出栈s的栈顶元素,并赋值给变量eintPop(Sqstack&s,ElemType&e){if(s.top==s.base)return0;--s.top;e=*s.top;return1;}//判断栈s是否为空,如果是返回1,否则返回0intStackEmpty(Sqstacks)

5、{if(s.base==s.top)return1;elsereturn0;}//获取栈s的栈顶元素intGetStackTop(Sqstacks,ElemType&e){if(s.base==s.top)return0;else{s.top--;e=*(s.top);return1;}}//获取栈s的长度intStackLength(Sqstacks){returns.top-s.base;}//把栈s置为空栈voidClearStack(Sqstack&s){printf("把栈置为空栈:");s.top=s.b

6、ase;}//将栈s销毁voidDestroyStack(Sqstack&s){printf("销毁栈:");free(s.base);s.top=s.base=NULL;s.stacksize=0;}voidmain(){intflag,SLength,j,i=1;Sqstacks;ElemTypee;InitStack(s);printf("");for(j=0;j

7、ntf("");flag=Pop(s,e);printf("如果flag等于1表示出栈成功,如果flag等于0表示出栈失败:flag=%d;栈顶元素为:%d",flag,e);printf("");flag=StackEmpty(s);printf("如果flag等于1表示s栈为空,如果flag等于0表示栈s非空:flag=%d:",flag);printf("");flag=GetStackTop(s,e);printf("如果flag等于1表示获取栈s栈顶元素成功,如果flag等于0表示获取栈s栈

8、顶元素失败:flag=%d;栈顶元素为:%d",flag,e);printf("");SLength=StackLength(s);printf("此时栈s的长度为:%d",SLength);printf("");ClearStack(s);flag=StackEmpty(s);printf("如果f

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。