考慮以下列表:鏈接列表彈出()函數
[LinkNode *頭 - LinkNode *節點1 - LinkNode *節點2]
我創建FIFO的堆棧。 我調用彈出()我想彈出node1。
LinkNode::LinkNode(int numIn) {
this->numIn = numIn;
next = null;
}
.
.
.
int LinkNode::pop() {
Link * temp = head->next;
head = temp->next;
int popped = head->nodeNum;
delete temp;
Return numOut;
問題:
1)頭應該是一個指針或LinkNode *?
2)鏈接* temp是在調用堆棧上創建的,當pop完成時不會自動刪除temp?
3)我的主要困惑是什麼是temp-> next的價值?這是否指向與node2相等的node1.next?
感謝您的幫助?
我的參考資料是Weiss的C++ for Java程序員。
換句話說,頭部被初始化爲例如: LinkNode *頭 這將使另一個節點。因此,head-> next會等於node1,但我想要獲取node1-next的值,即node2。我很難將語法應用到概念上。謝謝。 – JDragon314159 2010-04-23 23:50:59
@ JKid314159 - 您需要區分指針和節點。通常情況下,'head'指向第一個節點(所以'head-> nodeNum'來自第一個節點),而'head-> next'指向第二個節點(所以'head-> next-> nodeNum'來來自第二節點)。 – 2010-04-24 01:25:05
非常好。謝謝。 – JDragon314159 2010-04-25 19:25:15