C++数据结构-栈的初始化及其压栈和出栈-方法1

静态栈的创建与操作
本文详细介绍了如何使用C++创建静态栈,并实现基本的入栈、出栈和显示栈的功能。通过具体代码示例,展示了栈的初始化、元素的添加与移除过程,适合初学者理解栈的基本操作。
#include <iostream>
#include <cstdlib>
#define MAXSIZE 20
#define N 10
using namespace std;

//方法1
//静态栈的创建及其出栈入栈
//注意点:栈的0位置默认不存放数据,从下标1开始操作

typedef struct sqstack
{
    int *elem;
    int top;
}SqStack;

/*****************初始化静态栈******************/
void InitStack(SqStack & s)
{
    s.elem =new int[MAXSIZE];
    if(s.elem == NULL)
    {
        cout<<"内存分配失败!!!退出程序"<<endl;
        exit(0); //需引入头文件<cstdlib>
    }
    s.top=0;
}

/******************压栈*************************/
//进栈是从下标1开始存放,0位置不存放数据
void Push(SqStack &s , int e)
{
    if(s.top >= MAXSIZE-1)
    {
        cout<<"栈已满!!!"<<endl;
    }else
    {
        s.top++;
        s.elem[s.top]=e;
    }
}

/******************出栈*************************/
void Pop(SqStack &s , int &e)
{
    if(s.top <1)
        cout<<"栈已空!!!"<<endl;
    else
    {
        e=s.elem[s.top];
        s.top--;
    }

}

/******************显示栈*************************/
void ShowStack(SqStack &s)
{
    if(s.top <1)
        cout<<"栈是空的!!!"<<endl;
    else
    {
        for(int i = s.top; i >= 1; i--)
             cout<<i<<" ";
    }

}

int main()
{
    SqStack s;
    InitStack(s);
    for(int i=1;i<N;i++)
        Push(s,i);
    ShowStack(s);
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值