顺序栈

结构体定义

#include <iostream>
using namespace std;

#define MaxSize 50
typedef struct {
    int data[MaxSize];
    int top;
}SqStack;

初始化

//顺序栈
void InitStack(SqStack &S) {
    S.top = -1;//初始化栈顶指针
}

判空

bool StatckEmpty(SqStack S) {
    if (S.top == -1)
        return true;
    else
        return false;
}

进栈

bool push(SqStack& S, int data) {
    if (S.top == MaxSize - 1)
        return false;
    cout << "指针:" << S.top << endl;
    S.data[++S.top] = data;
    cout << "压栈成功:" << S.top << endl;
    return true;
}

出栈

bool pop(SqStack &S,int &x) {
    if (S.top == -1)
        return false;
    x = S.data[S.top--];
    return true;
}

测试

int main()
{
    SqStack S;
    InitStack(S);
    push(S, 1);
    cout << StatckEmpty(S) << endl;
    int prop;
    pop(S,prop);
    cout << "出栈元素:" << prop << endl;
    cout <<"是否为空栈:" << StatckEmpty(S) << endl;
}

文章作者: Gustavo
版权声明: 本博客所有文章除特別声明外,均采用 CC BY-NC 4.0 许可协议。转载请注明来源 Gustavo !
评论
  目录