#include<stdio.h>
typedef struct
{
int data[20];
int top; //栈顶指针
}SqStack;
void push(SqStack *S,int e)
{
if(S->top==20-1)
{
return;
}
S->top++;
S->data[S->top] = e;
return;
}
void pop(SqStack *S,int *e)
{
if(S->top==-1)
return;
*e = S->data[S->top];
S->top--;
return;
}
int main()
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
SqStack S;
push(&S,a);
push(&S,b);
push(&S,c);
while(S.top!=0)
{
printf("%d\n",S.data[S.top]);
S.top--;
}
栈是一种先进后出数据结构,从栈顶入,从栈顶出。
定义结构体,
typedef struct
{
int data[maxsize];
int top;
}SqStack; 定义结构体
入栈必须从栈顶入,通过top指针来进入,
void push(SqStack *S,int e)
{
if(S->top==maxsize-1)
return; //这里先判断栈满,栈满返回,因为,top指针一定要在定义的数组范围之内,top<maxsize。
//其次就是先赋值,再移动top指针,top一定是指向栈存在的元素所以要先移动top指针.
S-top++;
S->data[S->top] = e;
return;
}
void pop(SqStack *S,int *e)
{
SqStack p;
if(S-top==-1)
return;
p = S->data[S->top];
s->top--;
return;
}
栈主要就进栈和出站,把握好进栈和出栈时,top指针的变化就好。