共享栈结构体定义和操作

简介: 共享栈结构体定义和操作

判满条件:top2-top1=1;

注意:case里面包含变量初始化的时候,需要用{}括起来

#include<iostream>
using namespace std;
#define maxsize 100
#define elemtp int 
typedef struct {
  elemtp stack[maxsize];
  int top[2];
}stk;
stk s;
int push(int i, elemtp x) {
  if (i < 0 || i>1) {
    cout << "栈号输入不对" << endl;
    exit(0);
  }
  if (s.top[1] - s.top[2] == 1) {
    cout << "栈已满" << endl;
    return 0;
  }
  switch (i)
  {
    case 0:s.stack[++s.top[0]] = x; return 1; break;
    case 1:s.stack[--s.top[1]] = x; return 1;
  }
}
elemtp pop(int i) {
  if (i < 0 || i>1) {
    cout << "栈号输入不对" << endl;
    exit(0);
  }
  switch (i) {
  case 0:
    if (s.top[0] == 1) {
      cout << "栈空" << endl;
      return -1;
    }
  }
}
int main() {
  while (1) {
    cout << "请选择操作:1.入栈  2.出栈" << endl;
    int opt=0;
    cin >> opt;
    switch (opt)
    {
    case 1:{
      cout << "请输左栈,还是右栈" << endl;
      int top = 0;
      cin >> top;
      cout << "入栈数字" << endl;
      int num = 0;
      cin >> num;
      push(top, num);
      break;
    }
    case 2:{
      cout << "请输左栈,还是右栈" << endl;
      int top = 0;
      cin >> top;
      pop(top);
      break;
    }
    }
  }
}
相关文章
|
1天前
|
缓存 算法 C语言
数据结构与算法⑧(第三章_上)栈的概念和实现(力扣:20. 有效的括号)
数据结构与算法⑧(第三章_上)栈的概念和实现(力扣:20. 有效的括号)
4 0
|
1天前
数据结构——栈
数据结构——栈
10 1
|
1天前
|
存储
数据结构-树的介绍、树的定义和基本术语
树是一种非线性的数据结构,是以分支关系定义的层次结构,比如人类社会中的族谱、及各种机制、组织的关系都可以用树形象的表示。重点学习二叉树的存储和相关操作,还要讨论树、森林、二叉树的转换关系。
9 0
|
5天前
|
前端开发 JavaScript 算法
JavaScript 中实现常见数据结构:栈、队列与树
JavaScript 中实现常见数据结构:栈、队列与树
|
6天前
|
存储 NoSQL C语言
数据结构——顺序栈与链式栈的实现-2
数据结构——顺序栈与链式栈的实现
数据结构——顺序栈与链式栈的实现-2
|
6天前
|
存储 C语言
数据结构——顺序栈与链式栈的实现-1
数据结构——顺序栈与链式栈的实现
数据结构——顺序栈与链式栈的实现-1
|
6天前
栈的基本应用
栈的基本应用
14 3
|
6天前
栈与队列理解
栈与队列理解
13 1
|
6天前
|
存储 算法
数据结构与算法 栈与队列
数据结构与算法 栈与队列
12 0
数据结构与算法 栈与队列
|
6天前
|
C++
数据结构(顺序表 动态定义
数据结构(顺序表 动态定义
12 2