读书人

创建一个空链栈的有关问题

发布时间: 2013-09-12 22:07:04 作者: rapoo

创建一个空链栈的问题

/*栈类型*/
typedef struct Node
{
ElemType data;
struct Node *next;
}Node,*LinkStackPtr;

typedef struct LinkStack
{
LinkStackPtr top;
int count;
}LinkStack;

/*初始化栈*/
Status InitStack(LinkStack *S)
{
S->top = (LinkStackPtr)malloc(sizeof(Node));

if (!(S->top))
{
return ERROR;
}

S->count = 0;
S->top = NULL;

return OK;
}

为什么上面这个函数中S->top先分配块区域再赋值为NULL。
这段代码出于《大话数据结构源码》,求给出个好点的初始化链栈的代码 栈 数据结构
[解决办法]
引用:
《大话》还说:对于空栈来说,栈表原定义的空栈是指头指针指向空,那么链栈的空就是top为空。
那为什么 S->top = (LinkStackPtr)malloc(sizeof(Node));先分配一块,然后才值为NULL?

链栈

读书人网 >C语言

热点推荐