C++;链表插入节点、上一个节点初始化 我在我的C++教科书中看到了一个链表函数的例子,用于在下面的列表中插入一个新的节点,它在……/P>下面。 Void NumberList::insertNode(double num) { ListNode *newNode; //A new node ListNode *nodePtr; //To transverse the list ListNode *previousNode = nullptr; //The previous node //Allocate a new node and store num there newNode = new ListNode; newNode->value = num; //If there's no nodes in the list, make newNode the first node if (!head) { head = newNode; newNode->next = nullptr; } else //Otherwise, insert newNode { //Postion nodePtr at the head of the list nodePtr = head; //Initialize previousNode to nullptr. previousNode = nullptr; //Skip all nodes whose value is less than num. while (nodePtr != nullptr && nodePtr->value < num) { previousNode = nodePtr; nodePtr = nodePtr->next; } //If the new node is the 1st in the list, insert it before all other nodes if (previousNode == nullptr) { head = newNode; newNode->next = nodePtr; } else //Otherwise insert after the previous node { previousNode->next = newNode; newNode->next = nodePtr; } } } Void NumberList::insertNode(双num) { ListNode*newNode;//新节点 ListNode*nodePtr;//用于遍历列表 ListNode*previousNode=nullptr;//上一个节点 //分配一个新节点并将num存储在那里 newNode=新的ListNode; newNode->value=num; //如果列表中没有节点,则将newNode设为第一个节点 如果(!头) { 头=新节点; newNode->next=nullptr; } else//否则,插入newNode { //将nodePtr放在列表的最前面 nodePtr=头部; //将上一个节点初始化为null ptr。 previousNode=nullptr; //跳过值小于num的所有节点。 while(nodePtr!=nullptr&&nodePtr->valuenext; } //如果新节点是列表中的第一个节点,请将其插入到所有其他节点之前 if(previousNode==nullptr) { 头=新节点; newNode->next=nodePtr; } else//否则在上一个节点后插入 { 上一个节点->下一个=新节点; newNode->next=nodePtr; } } }

C++;链表插入节点、上一个节点初始化 我在我的C++教科书中看到了一个链表函数的例子,用于在下面的列表中插入一个新的节点,它在……/P>下面。 Void NumberList::insertNode(double num) { ListNode *newNode; //A new node ListNode *nodePtr; //To transverse the list ListNode *previousNode = nullptr; //The previous node //Allocate a new node and store num there newNode = new ListNode; newNode->value = num; //If there's no nodes in the list, make newNode the first node if (!head) { head = newNode; newNode->next = nullptr; } else //Otherwise, insert newNode { //Postion nodePtr at the head of the list nodePtr = head; //Initialize previousNode to nullptr. previousNode = nullptr; //Skip all nodes whose value is less than num. while (nodePtr != nullptr && nodePtr->value < num) { previousNode = nodePtr; nodePtr = nodePtr->next; } //If the new node is the 1st in the list, insert it before all other nodes if (previousNode == nullptr) { head = newNode; newNode->next = nodePtr; } else //Otherwise insert after the previous node { previousNode->next = newNode; newNode->next = nodePtr; } } } Void NumberList::insertNode(双num) { ListNode*newNode;//新节点 ListNode*nodePtr;//用于遍历列表 ListNode*previousNode=nullptr;//上一个节点 //分配一个新节点并将num存储在那里 newNode=新的ListNode; newNode->value=num; //如果列表中没有节点,则将newNode设为第一个节点 如果(!头) { 头=新节点; newNode->next=nullptr; } else//否则,插入newNode { //将nodePtr放在列表的最前面 nodePtr=头部; //将上一个节点初始化为null ptr。 previousNode=nullptr; //跳过值小于num的所有节点。 while(nodePtr!=nullptr&&nodePtr->valuenext; } //如果新节点是列表中的第一个节点,请将其插入到所有其他节点之前 if(previousNode==nullptr) { 头=新节点; newNode->next=nodePtr; } else//否则在上一个节点后插入 { 上一个节点->下一个=新节点; newNode->next=nodePtr; } } },c++,linked-list,insert,nodes,nullptr,C++,Linked List,Insert,Nodes,Nullptr,` 我想知道为什么以前的节点在代码中两次被初始化为nullptr?难道一次都不够好吗 还有一件事,谁能给我举个例子,如果存储的数据是字符或字符串,我们将如何在列表中插入节点?因为在本例中的while循环中,它声明节点中的数据必须小于传递给函数的数据 谢谢 我想知道为什么以前的节点在代码中两次被初始化为nullptr 没有理由这样做 难道一次都不够好吗 对 我想知道为什么以前的节点在代码中两次被初始化为nullptr?难道一次都不够好吗 一次就可以了。第二项任务是多余的 还有一件事,谁能给我举个例

`

我想知道为什么以前的节点在代码中两次被初始化为nullptr?难道一次都不够好吗

还有一件事,谁能给我举个例子,如果存储的数据是字符或字符串,我们将如何在列表中插入节点?因为在本例中的while循环中,它声明节点中的数据必须小于传递给函数的数据

谢谢

我想知道为什么以前的节点在代码中两次被初始化为nullptr

没有理由这样做

难道一次都不够好吗

我想知道为什么以前的节点在代码中两次被初始化为nullptr?难道一次都不够好吗

一次就可以了。第二项任务是多余的

还有一件事,谁能给我举个例子,如果存储的数据是字符或字符串,我们将如何在列表中插入节点

您可以编写一个节点类型,其
成员可以存储您想要的类型(或者使用,或者像这样在存储的类型上创建整个模板)

因为在本例中的while循环中,它声明节点中的数据必须小于传递给函数的数据

这不是它所做的:

//Skip all nodes whose value is less than num. 
 while (nodePtr != nullptr && nodePtr->value < num) { ... }
//跳过值小于num的所有节点。
而(nodePtr!=nullptr&&nodePtr->value
通过基于值选择插入位置来保持列表排序。“跳过所有节点”这里的意思是“经过这些节点,以便新节点在列表中紧跟其后”