将节点添加到单链表中
adding nodes into singly-linked list
我正在尝试学习链表。我刚刚写了一个程序来说明一个链表,但它似乎不起作用。这是代码:
#include <iostream>
using namespace std;
struct node
{
int data;
node* next;
};
int main(int argc, const char * argv[])
{
node* trav;
node* root;
root = new node;
trav = root;
trav -> data = 4;
trav -> next = new node;
trav -> data = 5;
trav -> next = new node;
trav -> data = 6;
trav -> next = 0;
trav = root;
while (trav!=0) {
std::cout<<trav->data;
trav=trav->next;
}
}
我希望root指向第一个节点,但随着程序的深入,它似乎复制了trav
的数据。知道怎么了吗
感谢
在此代码中:
trav = root;
trav -> data = 4;
trav -> next = new node;
trav -> data = 5;
trav -> next = new node;
您没有更改trav
指针,这意味着您正在覆盖其成员。通过调用trav->next = new node;
创建新节点后,您应该通过调用"移动"到下一个节点
trav = trav-> next;
您从不进行
trav = trav -> next;
当你填写清单时。您不在列表中移动,只需不断修改根。
您在trav -> next = new node
之后缺少trav = trav -> next
;换句话说,你创建了一个新的节点,但你从来没有真正"踏入"那里。
相关文章:
- 如何找到2个单链表的公共节点
- 对单链表的混淆
- 编写一个函数来删除单链表中的节点(尾部除外),仅授予对该节点的访问权限
- 在单链表前面添加一个节点后,我无法遍历每个节点
- 具有完整五法则的简单链表
- 在 C++ 中实现简单链表时出现问题,没有输出
- 在析构函数中删除单链表的正确方法是什么?
- 移动语义 c++ 单链表
- 单链表时间
- 带有unique_ptr的通用单链表,MS visual studio C++中存在未知错误
- 使用 std::unique_ptr 的通用单链表,Visual Studio C++ Microsoft中存在未知的反
- 删除单链表列表
- 在单链表中的后端插入节点
- 合并单链表上的排序
- 简单链表与下一个>下一个交换
- 我试图键入一个函数来在单链表的末尾添加一个节点,但不起作用
- 单链表分配问题 (nullptr)
- 如何将单链表更改为双链表
- 如何制作一个函数,只需更改链接即可交换单链表中的两个相邻元素
- 从单链表到双链表的变化