You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++单链表头部插入后无数据输出问题排查求助

问题分析与修复

你的链表打印不出数据,核心问题出在OfficeSpace类的insert方法里:

void insert (std::string name, std::string ipaddress, int iD)
{
    Node* node = new Node(name, ipaddress, iD);
    node->next = head;
    head = node->next; // 这里是错误的!
}

当你执行node->next = head时,新节点的next指向了当前的头节点(初始为NULL),但接下来你把head赋值成了node->next,也就是还是原来的head(一直是NULL),等于新节点根本没被加入到链表中,head永远不会更新,自然打印不出任何内容。

修正后的insert方法

把赋值语句改成直接让head指向新创建的节点:

void insert (std::string name, std::string ipaddress, int iD)
{
    Node* node = new Node(name, ipaddress, iD);
    node->next = head;
    head = node; // 修正这里,让head指向新节点
}

这样每次插入新节点时,新节点成为新的头,原头节点挂在新节点的next上,链表就能正常构建了。

另外,你的print方法里,ipaddress输出后没有换行或空格,会导致和后面的iD:连在一起,建议调整输出格式,比如:

std::cout << temp->name << std::endl 
          << temp->ipaddress << std::endl 
          << "iD: " << temp->iD << std::endl;

这样输出会更清晰。

修正后运行代码,就能正常打印所有插入的节点数据了。

内容的提问来源于stack exchange,提问作者CGedeus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 03:18:16