#include<iostream>
using namespace std;
void clean(int *s,int n)//将栈清空
{
for(int i=0;i<=n;i++)
s[i]=0;
}
bool stack_empty(int *s)//检查栈是否为空
{
if(s[0]==0)
return 1;//空返回1
else return 0;//非空返回0
}
void push(int *s,int x,int len)//入栈操作
{
if(s[0]!=len)
s[++s[0]]=x;
else cout<<"栈已满,无法完成入栈操作"<<endl;
}
int pop(int *s)//出栈操作
{
if(stack_empty(s))//如果是空栈,就没法出栈了
cout<<"出栈失败"<<endl;
else//如果不是空栈,就出栈
{
s[0]--;
return s[s[0]+1];//返回弹出的值
}
}
void print(int *s)//遍历栈
{
for(int i=1;i<=s[0];i++)
cout<<s[i]<<" ";
cout<<endl;
}
int main()
{
int n;
cin>>n;//n为栈的大小
int *s=new int[n+1];
clean(s,n+1);
for(int i=1;i<=10;i++)
{
push(s,i,n);
print(s);
}
for(int i=1;i<=n;i++)
{
pop(s);
print(s);
}
}
栈(数组模拟)
最新推荐文章于 2024-05-01 21:32:00 发布