菜缤的世界 CairBin's Blog - 顺序栈
type: channel
link: https://blog.cairbin.top/index.php/tag/顺序栈/
items: 顺序栈的操作

顺序栈的操作
type: item
date: 2021-10-07T12:40:00+00:00
description: 栈的定义#include <iostream> #define MAXSIZE 1000 using namespace std; //顺序栈 typedef struct { int data[MAXSIZE]; //存放栈顶元素 int top; //栈顶指针 }SqStack; 栈的操作初始化//初始化顺序栈 bool initStack(SqStack &st) { st.top = -1; return true; }判断为空//判断栈是否为空 bool isEmpty(SqStack st) { if(st.top == -1) return true; else return false; }入栈bool pushStack(SqStack &st, int e) { if(st.top == MAXSIZE - 1) return false; //栈已满，再入栈会上溢 //对于入栈，一定要先改指针再入 st.top++; st.data[st.top] = e; return true; }出栈bool popStack(SqStack &st, int &e) { if(st.top == -1) return false; //栈空不能继续出栈，否则下溢 //对于出栈，先出元素再取指针 e = st.data[st.top]; st.top--; return true; }获取栈顶元素//获取栈顶元素 bool getStackTopElem(SqStack st, int &e) { if(st.top == -1) return false; //栈空，无元素返回 e = st.data[st.top]; return true; }