我感觉对顺序栈还没理解
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cstdlib>
#define size 100
using namespace std;
struct node
{
int data[size];
int top;
}s;
int StackEmpty(int t)//判断栈S是否为空
{
s.top=t;
if (s.top==0)
return 1;
else return 0;
}
int InitStack()
{
s.top=0;
return s.top;
}
int push(int t,int e)
{
s.top=t;
s.data[++s.top]=e;
return s.top;
}
int pop(int t,int *e)
{
s.top=t;
if(StackEmpty(s.top))
{
printf("栈为空.");
return s.top;
}
*e=s.data[s.top];
s.top--;
return s.top;
}
void GetTop(int t,int *e)
{
s.top=t;
*e=s.data[s.top];
}
int main()
{
int top=InitStack();
printf("输入一个放入栈的数据:");
int x;
cin>>x;
top=push(top,x);
top=push(top,x);
int e;
GetTop(top,&e);
cout<<e<<endl;
e=0;
top=pop(top,&e);
cout<<e<<endl;
cout<<StackEmpty(top)<<endl;
return 0;
}