如果一个函数需要用到栈的时候,需要在函数里面写上 Stack &S,这样在函数里面用栈的时候才会改变栈里面的内容。
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
typedef struct Stack
{
int data[100];
int top;
}Stack,*Squestack;
void Init(Stack &S)
{
S.top=-1;
}
void instack(Stack &S,int i)
{
S.data[++S.top]=i;
}
int outstack(Stack &S)
{
return S.data[S.top--];
}
void jishu(Stack &S)
{
int i=5;
instack(S,i);
}
void fala(Stack &S)
{
int l=outstack(S);
cout<<l;
}
int main()
{
Stack S;
Init(S);
instack(S,1);
instack(S,2);
instack(S,3);
fala(S);
jishu(S);
int j;
j=outstack(S);
cout<<j;
return 0;
}