#include<iostream>
#include<stdlib.h>
using namespace std;
typedef struct Node
{
int data[10];
int top;
}Node,*SeqStack;
void InitNode(SeqStack *L)
{
(*L)=(SeqStack)malloc(sizeof(Node));
(*L)->top=-1;
}
void PushStack(SeqStack L,int x)
{
if(L->top==9) //默认为10个数据
cout<<"栈已满!";
else
{
L->top++;
L->data[L->top]=x;
}
}
void PrintNode(SeqStack L)
{
for(int i=0;i<=L->top;i++)
{
cout<<L->data[i]<<' ';
}
cout<<endl;
}
void PopStack(SeqStack L,int *i)
{
if(L->top==-1)
cout<<"该栈是空的!";
else
{
*i=L->data[L->top];
L->top--;
}
}
int main()
{
SeqStack s;
int x;
int *y;
y=&x; //y指向x为了出栈用
InitNode(&s); //初始化一个栈
cout<<"输入入栈的数据:";
cin>>x;
while(x!=0) //输入0作为结束
{
PushStack(s,x); //增加栈的元素 (进栈)
cin>>x;
}
PrintNode(s);
PopStack(s,y); //弹出最外面的一个元素
PrintNode(s);
}