链表插入
Linked list insertion
EmissonList对象是包含特定信息的节目列表。我寻找的问题出在插入功能中。
class EmissionList {
private:
Emission *head=NULL;
public:
void insert(Emission *aNode);
Emission *getHead() {
return head;
};
void putHead(Emission *newHead) {
head=newHead;
head->next = NULL;
}
void printEmissions();
};
void EmissionList::insert(Emission *aNode) {
Emission *ptr=getHead();
if (head == NULL){
putHead(aNode);
}else{
while(ptr!= NULL){
ptr = ptr->next;
}
ptr = aNode;
ptr->next=NULL;
}}
我正在尝试添加到列表中,但我遇到了问题。
首先,EmissionList 类的设计很糟糕。
尽管如此,该函数可以通过以下方式定义
void EmissionList::insert( Emission *aNode )
{
Emission *current = getHead();
if ( current == NULL )
{
putHead( aNode );
}
else
{
while ( current->next ) current = current->next;
aNode->next = current->next;
current->next = aNode;
}
}
在代码中,当您设置 ptr = aNode 时,ptr 不是最后一个元素的"下一个",因此原始列表保持不变
我建议你标准::列表,或者,至少
for (Emission **iter = &head ; *iter != NULL ; )
iter = &((*iter)->next) ;
*iter = aNode ;
这是我迄今为止发现的最简单的插入(最后)。
相关文章:
- 链表c++插入,所有情况都已检查,但没有任何工作
- 如何按数字顺序插入链表节点?
- 在链链表中手动插入第五个元素
- 在链表中的第 n 位插入显示分割错误
- 将二叉树的节点插入链表 (C++)
- 在将第一个值插入链表时尝试访问 head 时出现分段错误
- 插入链表和无限循环的末尾
- C++中的数据结构,插入链表中节点的开头
- 将节点插入链表只会转到开头或结尾
- 如何将唯一的随机整数插入链表中
- 按排序顺序将节点插入链表
- C++内存从将数据插入链表中泄漏
- 将整数按升序插入链表
- 将节点正确插入链表C++中
- 尝试将节点插入链表中,但我需要一个重载运算符<函数
- 插入链表的后面
- 在间隔树中插入链表元素
- 将单词插入链表时出错
- 如何在head中的特定节点后插入链表?c++
- 将项插入链表后进行排序