两栈共享空间
来源:互联网 发布:分类别思维知乎 编辑:程序博客网 时间:2024/05/01 18:34
#include <stdio.h>#include <malloc.h>#include <stdio.h>#define MAXSIZE 10#define ERROR false#define OK truetypedef int sElemType;typedef struct {sElemType data[MAXSIZE];int top1;//栈顶一int top2;//栈顶二} sqDoubleStack;bool Push(sqDoubleStack* stack, sElemType e, int stackNumber) {if (stack->top1 + 1 == stack->top2) {return ERROR; //栈以满}if (stackNumber == 1) {stack->top1++;stack->data[stack->top1] = e;} else if (stackNumber == 2) {stack->top2--;stack->data[stack->top2] = e;}return OK;}bool Pop(sqDoubleStack* stack, int stackNumber, sElemType* e) {if (stackNumber == 1) {if (stack->top1 == -1) {return ERROR;//空栈}*e = stack->data[stack->top1];stack->top1--;} else if (stackNumber == 2) {if (stack->top2 == MAXSIZE) {return ERROR; //空栈}*e = stack->data[stack->top2];stack->top2++;}return OK;}int main() {sqDoubleStack* stack = (sqDoubleStack*) malloc(sizeof(sqDoubleStack));stack->top1 = -1;stack->top2 = MAXSIZE;for (int i = 0; i < 5; i++) {Push(stack, i, 1);}for (int i = 5; i < 10; i++) {Push(stack, i, 2);}sElemType e;//出栈 printf("一号栈\n");for (int i = 0; i < 5; i++) {if (Pop(stack, 1, &e))printf("%d\n", e);}printf("二号栈\n");for (int i = 0; i < 5; i++) {if (Pop(stack, 2, &e))printf("%d\n", e);}return 0;}
0 0
- 两栈共享空间
- 两栈共享空间
- 两栈共享空间
- 两栈共享空间
- 两栈共享空间
- 两栈共享空间
- 两栈共享空间
- 两栈共享空间
- 两栈共享空间
- 两栈共享空间
- 两栈共享空间
- 两栈共享空间
- 两栈共享空间
- 栈-----两栈共享空间
- 【栈】两栈共享空间
- 两栈共享空间思路
- 顺序栈,两栈共享空间,链栈
- 数据结构--栈--两栈共享空间
- .Net 中的反射(反射特性)
- LPC1768 IAP升级
- 数据库小结1
- recycleView的一些常见用法
- 【机器学习基础】机器学习算法的分类——关于如何选择机器学习算法和适用解决的问题
- 两栈共享空间
- Select2下拉框总结
- jks 秘钥加解密
- Android热修复之AndFix.android studio
- 给定一个日期,用mysql得到该日期所对应的星期一所对应的日期和星期天所对应的日期。
- 【机器学习基础】生成模型和判别模型
- 网络字节序与主机字节序
- java内存区域--运行时数据区域
- 解决:keil报错invalid redeclaration of type name "s32"