【数据结构/C++】栈和队列_顺序栈

image.png

#include
using namespace std;
#define MaxSize 10
// 1. 顺序栈
typedef int ElemType;
struct Stack {
  ElemType data[MaxSize];
  int top;
} SqStack;
// 初始化栈
void init(Stack &s) {
  // 初始化栈顶指针
  s.top = -1;
}
// 入栈
bool push(Stack &s, ElemType x)
{
  if (s.top == MaxSize - 1) {
    return false;
  } 
  s.top = s.top + 1;
  s.data[s.top] = x;
  return true;
}
// 出栈
bool pop(Stack &s, ElemType &x) {
  if(s.top == -1) {
    return false;
  }
  x = s.data[s.top];
  s.top = s.top - 1;
  return true;
}
// 遍历
void traverse(Stack s) {
  for (int i = 0; i <= s.top; i++) {
    cout << s.data[i] << " ";
  }
  cout << endl;
}
// 栈的长度
int length(Stack s) {
  return s.top + 1;
}
int main() {
  Stack s;
  init(s);
  ElemType x;
  push(s, 1);
  push(s, 2);
  push(s, 3);
  push(s, 4);
  push(s, 5);
  traverse(s);
  pop(s, x);
  cout << "pop: " << x << endl;
  traverse(s);
  cout << "length: " << length(s) << endl;
  return 0;
}

【数据结构/C++】栈和队列_顺序栈_第1张图片

你可能感兴趣的:(C/C++,数据结构,数据结构,c++,开发语言)