两个数组实现堆栈
来源:互联网 发布:linux打包解包 编辑:程序博客网 时间:2024/05/16 12:19
//Designed by st#include <stdio.h>#include <stdlib.h>#define MAXNUM 8#define OVERFLOW -1#define UNDERFLOW -2#define FLAGERROR -3typedef int elemtype;typedef struct stack{ int top; int flag;}stack;typedef struct ShareArrStack{ elemtype data[MAXNUM]; stack stack1; stack stack2;}ShareArrStack;void Init(ShareArrStack *s){ (s->stack1).top = -1; (s->stack1).flag = 1; (s->stack2).top = MAXNUM; (s->stack2).flag = 2;}int IsFull(ShareArrStack *s){ return ((s->stack1).top +1 == (s->stack2).top);}int IsEmpty(ShareArrStack *sn){ return (((sn->stack1).top == -1) || ((sn->stack2).top == MAXNUM));}void push(ShareArrStack *s, stack sn, elemtype x){ if (IsFull(s)) { printf("the stack overflow!"); exit(OVERFLOW); } else { switch (sn.flag) { case 1: { s->stack1.top += 1; s->data[s->stack1.top] = x; break; } case 2: { s->stack2.top -= 1; s->data[s->stack2.top] = x; break; } default: { exit(FLAGERROR); } } }}elemtype pop(ShareArrStack *s, stack sn){ if (IsEmpty(&sn)) { printf("the stack underflow!"); exit(UNDERFLOW); } else { switch (sn.flag) { case 1: { return s->data[s->stack1.top--]; break; } case 2: { return s->data[s->stack2.top++]; break; } default: { exit(FLAGERROR); } } }}int main(){ ShareArrStack *s =NULL; s = (ShareArrStack*)malloc(sizeof(ShareArrStack)); Init(s); push(s, s->stack1, 1); printf("%d,", s->data[s->stack1.top]); push(s, s->stack2, 9); push(s, s->stack1, 9); push(s, s->stack2, 4); printf("%d,", pop(s, s->stack2)); printf("%d,", pop(s, s->stack1)); system("pause"); return 0;}
0 0
- 两个数组实现堆栈
- 一个数组实现两个堆栈
- 在一个数组中实现两个堆栈
- 在一个数组中实现两个堆栈
- 4-7 在一个数组中实现两个堆栈
- 静态数组实现堆栈
- 用数组实现堆栈
- 动态数组实现堆栈
- 数组实现堆栈
- 堆栈(数组实现)
- 堆栈的数组实现
- 堆栈用数组实现
- 数组实现堆栈
- 数组实现堆栈操作
- 堆栈的数组实现
- 用数组实现堆栈
- 使用数组实现堆栈
- 数据结构-堆栈-数组实现
- Python学习笔记-json解析
- java枚举类型enum的使用
- selenium java等待alert对话框弹出,并关闭对话框
- 自动溜坡
- SASS用法指南-阮一峰
- 两个数组实现堆栈
- 代码的优化——JAVA类的继承
- Lua中的ipair 和 pair的区别
- 关于使用jq的ajax通过josnp方式跨域获取数据
- hdu 1556 线段树
- c++第五次作业
- 复制带随机指针的链表
- android service,服务的正确姿势
- sharepoint 2013 excel services浏览excel文件 未能下载图表或图像