顺序栈的创建以及各种操作

本文深入探讨了顺序栈的结构定义及基本操作,包括初始化、判断栈是否为空、进栈、出栈、遍历和查找。通过示例代码展示了每个操作的具体实现,帮助读者全面掌握顺序栈的操作技巧。
摘要由CSDN通过智能技术生成

目录

一 顺序栈的结构定义

二 顺序栈的基本操作

2.0 头文件展示

2.1 主函数展示

2.2 顺序栈的初始化

2.3 判断栈是否为空

三 顺序栈的进栈,出栈,遍历和查找操作

3.1 顺序栈的进栈操作

3.2 进栈操作展示

3.3 出栈操作

3.4 出栈操作展示

3.5 顺序栈的遍历操作

3.6 遍历操作展示

3.7 顺序栈的查找操作

3.8 查找操作展示

3.9 总代码

四 总结


一 顺序栈的结构定义

#define Elemtype int 

#define Maxsize 20
typedef struct SqStack
{
    Elemtype data[Maxsize];  // 存放栈中元素
    int top; // 栈顶指针
};

 

二 顺序栈的基本操作

2.0 头文件展示

void Init_Stack(SqStack& s);  // 栈的初始化
bool Empty_Stack(SqStack& s); // 判断栈空
void Push_Stack(SqStack& s); // 进栈
Elemtype Pop_Stack(SqStack& s, int i); // 前i个元素出栈
void Reverse_Stack(SqStack s); // 栈的遍历
Elemtype Get_Stack(SqStack &s); // 查找栈顶元素

2.1 主函数展示

int main()
{
    int a = 0; 
    SqStack s;  // 创建一个栈的对象
    Init_Stack(s);
    Push_Stack(s);
    cout << endl;
    if (Empty_Stack(s) == true)
    {
        cout << "栈空" << endl;
        exit(0);
    }
    Reverse_Stack(s);

    cout << endl;
    a = Get_Stack(s);
    cout << "栈顶元素的值为" << a << endl;

    //Pop_Stack(s, 3);
    //cout << endl;
    //Reverse_Stack(s);
}

2.2 顺序栈的初始化

void Init_Stack(SqStack& s)
{
    s.top = -1;  // top指向-1 
}

2.3 判断栈是否为空

bool Empty_Stack(SqStack& s)
{
    if (s.top == -1)
    {
        cout << "栈空,请输入栈中的元素" << endl;
        return true;
    }
    else
    {
        return false;
    }
}

 

三 顺序栈的进栈,出栈,遍历和查找操作

3.1 顺序栈的进栈操作

void Push_Stack(SqStack& s)
{
    int len = 0;
    int val = 0;
    if (s.top == Maxsize - 1)
    {
        cout << "栈已经满了" <&l

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值