用数组实现栈的基本操作

题目基本描述:给定一个数组,大小给定,用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();
    }
}

猜你喜欢

转载自blog.csdn.net/qq_40938077/article/details/80170032
今日推荐