新手上路,请求帮助~!关于栈的出栈和压栈
刚刚学习C语言,关于栈的一些代码,有些疑问,帮忙解释下啦~~#include<stdlib.h>
#include<iostream.h>
#include<conio.h>
typedef char ElemType;
#define StackSize 100 /* 顺序栈的初始分配空间 */
typedef struct
{
ElemType data[StackSize]; /* 保存栈中元素 */
int top; /* 栈指针 */
}SqStack;
void InitStack(SqStack *st) /* st为引用型参数 */
{
st->top=-1;
}
int Push(SqStack *st,ElemType x) /* 进行栈运算,st为引用型参数 */
{
if(st->top==StackSize-1) /* 栈满 */
return 0;
else
{
st->top++;
st->data[st->top]=x;
return 1;
}
}
int Pop(SqStack *st,ElemType *x) /* 出栈运算,st和x为引用型参数 */
{
if(st->top==-1) /* 栈空 */
return 0;
else /* 栈不空 */
{
*x=st->data[st->top];
st->top--;
return 1;
}
}
压栈的时候,X是字符型数组,data[]的[]内为什么是st->top啊?还有就是出栈的时候为什么是这样啊*x=st->data[st->top]
谢谢哪位解释一下啦~~