题目描述
编程实现顺序栈的初始化、入栈、出栈、取栈顶元素和计算栈中元素个数等基本操作。
输入
第一行为入栈元素的个数; 第二行依次为入栈的元素; 出栈操作的次数n.
输出
输出n次出栈后的栈顶元素值。如果是空栈,输出-1.
样例输入
4
1 2 3 4
2
样例输出
2
#include<stdio.h>
#include<malloc.h>
#define MaxSize 1000
struct SqStack
{
int data[MaxSize];
int top;
};
void init(SqStack*&s)
{
s=(SqStack*)malloc(sizeof(SqStack));
s->top=-1;
}
void Destroy(SqStack*&s)
{
delete(s);
}
bool Stackempty(SqStack*s)
{
return (s->top==-1);
}
void push(SqStack*&s,int e)
{
if(s->top==MaxSize-1) return ;
s->top++;
s->data[s->top]=e;
}
int pop(SqStack*&s)
{
int e;
if(s->top==-1) return -1;
e=s->data[s->top];
s->top--;
return e;
}
void gettop(SqStack*s,int &e)
{
if(s->top==-1) return ;
e=s->data[s->top];
}
int main()
{
SqStack*st;
init(st);
int n,num;
scanf("%d",&n);
while(n--)
{
scanf("%d",&num);
push(st,num);
}
int k;
scanf("%d",&k);
while(k--)
{
pop(st);
}
printf("%d",pop(st));
}