3
我有一個關於添加創建/添加新節點到列表頂部的函數的問題。這是設置。鏈接列表,添加節點到列表頭添加節點的功能
在主程序中創建了一個頭。我們將列表設置爲空
IntNode* head = new IntNode(3,NULL);
我的問題是關於將一個節點添加到列表頂部的函數。假定有列表中的至少一個節點。我知道它會創建一個新的節點,使在主程序中已經聲明瞭指針,它被傳遞,點(我們剛創建的)
void headInsert(IntNodePtr& head, int theData)
{
head = new IntNode(theData, head);
}
新的節點。然而,我對他在構造函數中的參數部分(而不是headInsert函數)「頭部」感到困惑。當我們在上面的IntNode構造函數中傳遞頭時,我對傳遞的是什麼感到困惑。那個頭設置了變量鏈接,指向哪個頭指向正確? ******我的問題是,它是否首先設置*鏈接(類變量)指向哪個頭指向哪裏,在這種情況下,節點的編號爲3,其列表指向NULL,然後使頭點到新的節點?換言之,任務的正確部分是先完成的?我對創建新節點時傳入的內容感到困惑。
class IntNode
{
public:
IntNode() {}
IntNode(int theData, IntNode* theLink)
: data(theData), link(theLink) {}
IntNode* getLink() const { return link; }
int getData() const { return data; }
void setData(int theData) { data = theData; }
void setLink(IntNode* pointer) { link = pointer; }
private:
int data;
IntNode *link;
};
void headInsert(IntNodePtr& head, int theData)
{
head = new IntNode(theData, head);
}
分配的右側首先被評估。對C++中的評估順序有嚴格的規定。 – Jason