/*栈类型*/
typedef struct Node
{
ElemType data;
struct Node *next;
}Node,*LinkStackPtr;
typedef struct LinkStack
{
LinkStackPtr top;
int count;
}LinkStack,*pLinkStack;
/*初始化栈*/
/*对于空栈来说,栈表原定义的空栈是指头指针指向空,那么链栈的空就是top为空。*/
Status InitStack(pLinkStack *S)
{
*S = (LinkStack*)malloc(sizeof(LinkStack));
//S = (LinkStackPtr)malloc(sizeof(Node));
if (!(*S))
{
return ERROR;
}
(*S)->count = 0;
(*S)->top = NULL;
return OK;
}
//注意该函数是给*S分配内存了,应该用指向内存的指针。否则,相当于参数地址的值传递,改变不了参数的值。