博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
共享栈基本操作
阅读量:6267 次
发布时间:2019-06-22

本文共 2102 字,大约阅读时间需要 7 分钟。

#include  
#include
#include
#define StackSize 100//DataType为元素的数据类型,stack用于存储共享栈中的数据元素的数组//top[0]和top[1]为栈顶数组下标typedef char DataType;typedef struct { DataType stack[StackSize]; int top[2]; }SSeqStack;//初始化栈void SStackInit(SSeqStack *S){ S->top[0]=0; S->top[1]=StackSize-1;}//取栈顶元素.flag为1表示取左端元素,flag为2表示取右端元素int GetTopS(SSeqStack S, DataType *e,int flag){if(flag==1){ if(S.top[0]<=0) { printf("左栈已经空!\n"); return 0; } else { *e=S.stack[S.top[0]-1]; return 1; }}else if(flag==2){ if(S.top[1]>=StackSize-1) { printf("右栈已经空!\n"); return 0; } else { *e=S.stack[S.top[1]+1]; return 1; } }else{ printf("不正确的参数!\n"); return 0;}}//将元素入栈int PushSStack(SSeqStack *S, DataType e, int flag){if(flag==1){ if(S->top[0]>=S->top[1])//栈满的条件是相等还是大于?认为均可以 { printf("栈已经满!\n"); return 0; } else { S->stack[S->top[0]]=e; S->top[0]++; return 1; }}else if(flag==2){ if(S->top[0]>=S->top[1] ) { printf("栈已经满!\n"); return 0; } else { S->stack[S->top[1]]=e; S->top[1]--; return 1; } }else{ return 0;}}//将栈顶元素出栈int PopSStack(SSeqStack *S, DataType *e,int flag){if(flag==1){ if(S->top[0]==0) { printf("左栈已经空!\n"); return 0; } else { S->top[0]--; *e=S->stack[S->top[0]]; return 1; }}else if(flag==2){ if(S->top[1]==StackSize-1) { printf("右栈已经空!\n"); return 0; } else { S->top[1]++; *e=S->stack[S->top[1]]; return 1; } }else{ return 0;}}//清空栈void ClearSStack(SSeqStack *S){ S->top[0]=0; S->top[1]=StackSize-1;}int main(){ DataType a[]={
'a','b','c','d','e','f'}; DataType b[]={
'p','w','x','y','z'}; SSeqStack B; DataType e1, e2; int i=0; SStackInit(&B); for(i=0;i

转载地址:http://czjpa.baihongyu.com/

你可能感兴趣的文章
开篇寄语
查看>>
Dijkstra算法的C++实现
查看>>
phpstorm psr2样式.xml
查看>>
js 无限级分类
查看>>
umask值与Linux中文件和目录权限的关系
查看>>
python自动化开发-8
查看>>
bzoj 2127: happiness
查看>>
Python 3.5 之路 day1
查看>>
selenium使用chrome抓取自动消失弹框的方法
查看>>
实现strStr()---简单
查看>>
只有PD号的调起
查看>>
返回一个整数数组中最大子数组的和
查看>>
leetcode(二)
查看>>
利用css实现居中的方法
查看>>
Spring + Hibernate 框架
查看>>
添加浏览器的用户样式表
查看>>
LigerUI学习笔记之布局篇 layout
查看>>
LeetCode题解(二)
查看>>
Mybatis通用Mapper
查看>>
文件磁盘命令(就该这么学6章内容)
查看>>