初始化链栈,为 top 指针申请一节点,申请之后却不用,而将 top 指针指向NULL??求大神指教这个申请节点的操作的作用何在?
初始化链栈,为 top 指针申请一节点,申请之后却不用,而将 top 指针指向NULL??求大神指教这个申请节点的操作的作用何在?
代码如下:
typedef int Status;
typedef int SElemType; /* SElemType类型根据实际情况而定,这里假设为int */
/* 链栈结构 */
typedef struct StackNode
{
SElemType data;
struct StackNode *next;
}StackNode,*LinkStackPtr;
typedef struct
{
LinkStackPtr top;
int count;
}LinkStack;
/* 构造一个空栈S */
Status InitStack(LinkStack *S)
{
//为何此处要申请一个节点?作用何在?申请之后为何不用了?
S->top = (LinkStackPtr)malloc(sizeof(StackNode));
if(!S->top)
return ERROR;
S->top=NULL;
S->count=0;
return OK;
}
我们老师说,应该指向 S->next == NULL;
说如果这样会内存泄露。求助啊
代码如下:
typedef int Status;
typedef int SElemType; /* SElemType类型根据实际情况而定,这里假设为int */
/* 链栈结构 */
typedef struct StackNode
{
SElemType data;
struct StackNode *next;
}StackNode,*LinkStackPtr;
typedef struct
{
LinkStackPtr top;
int count;
}LinkStack;
/* 构造一个空栈S */
Status InitStack(LinkStack *S)
{
//为何此处要申请一个节点?作用何在?申请之后为何不用了?
S->top = (LinkStackPtr)malloc(sizeof(StackNode));
if(!S->top)
return ERROR;
S->top=NULL;
S->count=0;
return OK;
}
我们老师说,应该指向 S->next == NULL;
说如果这样会内存泄露。求助啊
...全文
相关推荐
数据结构课程:顺序栈和链栈的实现
数据结构课程中顺序栈和链栈的操作实现,实现语言为C语言
c语言实现链栈操作
数据结构作业,用c实现链栈的基本操作,程序不是很难,谢谢
链栈的实现链栈的实现
链栈的实现链栈的实现链栈的实现链栈的实现链栈的实现
链栈的基本操作c语言.pdf
链栈的基本操作c语言 在主函数中,我们首先通过调用`initStack`函数初始化链栈。然后,我们依次调用`push`函数将元素1、2、3入栈,并调用`printStack`函数打印链栈。 接着,我们调用`pop`函数将栈顶元素出栈,并再次调用`printStack`函数打印链栈。 最后,我们通过调用`getTop`函数获取栈顶元素,并打印出来。 希望以上代码能够帮助到你。
链栈的表示和实现源码
链式存储的栈表示和实现源码,包括链栈的初始化、进栈、出栈、取栈顶元素等操作。


