#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef int dataType;
#define MAXSIZE 8
typedef struct shareStack
{
dataType data[MAXSIZE];
int leftTop;
int rightTop;
}shareStack;
void initshareStack(shareStack *s)
{
s->leftTop=-1;
s->rightTop=MAXSIZE;
memset(s->data, 0, sizeof(int)*MAXSIZE);
}
void push(shareStack *s,int e,int stackType)
{
if (s->leftTop+1==s->rightTop)
{
return;
}
if (stackType==1)
{
s->leftTop++;
s->data[s->leftTop]=e;
}
if (stackType==2) {
s->rightTop--;
s->data[s->rightTop]=e;
printf("%d",e);
}
}
void pop(shareStack *s,int *e,int stackType)
{
if (stackType==1)
{
if (s->leftTop==-1)
{
return;
}
*e=s->data[s->leftTop];
s->leftTop--;
}
if (stackType==2)
{
if (s->rightTop==MAXSIZE)
{
return;
}
*e=s->data[s->rightTop];
s->rightTop++;
}
}
int main(void)
{
shareStack s;
initshareStack(&s);
int temp;
printf("Push Order:\n");
for (int i=0; i<8; i++) {
push(&s, i, 2);
}
printf("\n");
printf("Pop Order:\n");
for (int i=0; i<8; i++) {
pop(&s, &temp, 2);
printf("%d",temp);
}
printf("\n");
return 0;
}共享栈
原创
©著作权归作者所有:来自51CTO博客作者NetworkAD的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
【数据结构】C语言实现共享栈
【数据结构】第三章——栈、队列与数组详细介绍通过C语言实现共享栈
数据结构 C语言 栈 共享栈 -
【Docker技术栈】
Docker 技术栈
Docker -
一场关于栈的面试----最小栈的实现
一场关于栈的面试----最小栈的实现
最小值 出栈 入栈 -
两栈共享空间【转】Stack i++ 数据结构
-
数据结构(共享栈
两个指针,一个将0作为栈底,一个将maxsize作为栈底,向里面填充。
数据结构 leetcode python 算法 职场和发展 -
两栈共享存储空间
两栈共享空间
数据结构 栈
















