链表,对将节点添加到链表头部的函数感到困惑
Linked list,Confused about Function that adds node to head of the list
我有一个关于添加一个创建/添加一个新节点到列表顶部的函数的问题。这是设置
头在主程序中创建。我们将列表设置为Null
IntNode* head = new IntNode(3,NULL);
我的问题是关于将节点添加到列表顶部的函数。假设列表中至少有一个节点。(我们刚刚创建的那个)
void headInsert(IntNodePtr& head, int theData)
{
head = new IntNode(theData, head);
}
我知道它创建了一个新节点,并使已经在主程序中声明的指针指向新节点。然而,我对构造函数中参数的"头"部分感到困惑(不是headInsert函数)。当我们在上面的IntNode构造函数中传递head时,我对传递的究竟是什么感到困惑。那头设置变量链接,指向什么头是指向正确吗?******我的问题是,它是否首先设置*链接(类变量)指向什么头是指向,在这种情况下,与数字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);
}
赋值边的求值-
head
和
new IntNode(theData, head)
根本没有排序,但在执行赋值之前,两边都被完全求值了。由于两边都没有修改head
的值,所以无论求值顺序如何,结果都是相同的。
相关文章:
- 链表,反向函数,数据结构
- 链表的泛型函数remove()与成员函数remove)
- 链表中的 C++ 析构函数
- 为什么我的双向链表删除函数会删除多个节点?
- 在 c++ 中具有向量的双向链表构造函数
- C++析构函数被意外调用双链表
- 修改链表主函数代码,用户将在其中输入节点的索引和数据以及正确的消息
- 双链表的擦除值函数,未知错误
- 使用函数引用指向节点的指针删除链表中的节点?
- 使用析构函数释放链表
- 链表函数调用
- 使用链表函数循环
- 在C++中调用链表函数
- 链表函数出现问题
- 这个链表函数有什么问题?
- 链表函数 C++ "which is of non-class type 'int'" ?
- 链表函数 cpp 中的指针作用域
- 我的反向单向链表函数代码有什么问题?
- Delete_At链表函数使程序崩溃
- 双链表函数的一部分不能正常工作