顺序栈/用数组实现栈

#include<iostream>
#define MAXSIZE 100
using namespace std;
typedef struct astack
{
    int* top;
    int * base;
    int stacksize;
    
    
}Astack;
void stackinit(Astack &a1)
{

    a1.base=new int [MAXSIZE];
    a1.top=a1.base;
    a1.stacksize=MAXSIZE;

}
void putin(Astack &a1,int n)//入栈函数 
{
    
    
    if(a1.top-a1.base==a1.stacksize)//判断是否栈满 
    {
        cout<<"栈满"<<endl;
    }

       *a1.top=n;
        a1.top++;
        
}
void stackempty(Astack a1)
{
    if(a1.base==a1.top)
    {
        cout<<"栈空"<<endl; 
    }
    else
    {
        cout<<"栈非空"<<endl;
    }
 } 
 void stackfull(Astack a1)
 {
     if(a1.top-a1.base==a1.stacksize)
     {
         cout<<"栈满"<<endl; 
     }
     else
     {
         cout<<"栈非满"<<endl; 
     }
 }
void putout(Astack &S,int &n)
{
    if(S.top==S.base)
    {
        cout<<"栈空 不能出栈"<<endl; 
       
    }
        S.top--; 
        n=*S.top;
        
        
    
}
int main()
{
    Astack a2;
    int x;
    stackinit(a2);
    cout<<"请输入想要输入到栈中值的个数"<<endl;
    cin>>x; 
    cout<<"请输入栈的值"<<endl; 
    for(int i=0;i<x;i++)
    {
        int n;
        cin>>n;
        putin(a2,n);
    }
    stackempty(a2); 
    stackfull(a2);
     
    
    int e,j=1;
    while(a2.top!=a2.base)
    {
        putout(a2,e);
        printf("第%d个出栈的是%d\n",j++,e);
    }
        


    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值