1
我想弄清楚堆栈链表的方式。我找到了一种方法,但这种方法只适用于阵列工作栈空堆栈的链表
void empty(StackPtr S)
{
S -> top = -1;
}
我的猜测是使用
while(!isEmpty(s))
该函数的isEmpty将检查堆栈是否为空。然后我卡:(
编辑: 我把它的方式:。
void push(StackPtr S, StackData d) /*adds the top element*/
{
NodePtr np = (NodePtr)malloc(sizeof(Node));
np -> data = d;
np -> next = S -> top;
S -> top = np;
}
你是如何将物品推入堆栈的吗?你是否编码过一种方式将它们弹出来? – polarysekt 2014-10-08 04:13:45
嗨,我已将它添加到上面:) – kybookie 2014-10-08 04:26:03
'isEmpty()'可以检查(或替换为支票)如果'top'是一个无效指针。如果没有,请保持'pop()'pin'直到它,确保free()'每一个。 – polarysekt 2014-10-08 04:34:25