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