题目描述
编程实现链栈的初始化、入栈、出栈和计算栈中元素个数等基本操作。(测试数据为整数。)
输入
第一行为入栈元素的个数;
第二行为入栈元素;
出栈操作的次数n.
输出
n次出栈后的栈顶元素。如果是空栈,输出-1.
样例输入
4
1 2 3 4
2
样例输出
2
参考程序
#include<stdlib.h>
#include<stdio.h>
#define Maxsize 50
typedef struct sqnode
{
int data[Maxsize];
int rear;
}SqNode;
void Init(SqNode *&S)
{
S = (SqNode *) malloc (sizeof(SqNode));
S->rear = -1;
}
bool Push(SqNode *&S, int e)
{
if(S->rear==Maxsize-1) return false;
S->rear++;
S->data[S->rear]=e;
return true;
}
bool Pop(SqNode *&S)
{
if(S->rear==-1) return false;
S->rear--;
return true;
}
int main()
{
int n, e,m;
SqNode *S;
Init(S);
scanf("%d", &n);
for(int i=0; i<n; i++)
{
scanf("%d", &e);
Push(S,e);
}
scanf("%d", &m);
if(m>=n) printf("-1");
else
{
for(int i=0; i<m; i++)
Pop(S);
printf("%d", S->data[S->rear]);
}
return 0;
}
注意
该程序仅供学习参考!