题目基本描述:给定一个数组,大小给定,用n表示,让你设计个程序,用该数组实现栈的基本操作
思路:
栈是先进后出,首先定义一个变量index,代表如果放入一个数(push操作),应该放到数组的index位置(也代表当前栈中有几个数)。
push操作:如果index等于数组的大小,说明栈中数字满了,给用户报错。否则,将这个数放入到数组index位置,然后index加1。
pop操作:如果index等于0,说明栈中已经没有数字了,给用户报错,否则,将index减1位置上的数输出,然后index减1。
代码如下:
#include<bits/stdc++.h>
using namespace std;
int a[3];
int index=0;//表示加入一个数,应该加到哪个位置,也代表当前栈中有几个数
string b;
void push(int n)
{
if(index==3)//当当前队列中的数已经满了,但还是要往里加数,此时应该报错
cout<<"error"<<endl;
else
a[index++]=n;
}
void pop()
{
if(index==0)//当队列中没有数字时,你还想从队列中拿出数字,此时也应该报错
cout<<"error"<<endl;
else
cout<<a[--index]<<endl;//这里不用判断是否越界,因为是--,只有当index等于0时,--index才会越界,但这种情况上面已经判断过了,所以不可能发生
}
int main()
{
while (cin>>b)
{
if(b=="push")
{
int number;
cin>>number;
push(number);
}
if(b=="pop")
pop();
}
}