C++单链表

本文探讨了C++中单链表初始化的重要性,特别是指针link的初始化问题,指出未初始化的first指针可能导致野指针错误。同时,文章提供了正确的构造函数重载示例,并讲解了如何实现单链表的逆转操作。
摘要由CSDN通过智能技术生成
#include <iostream>

using namespace std;

class LinkNode
{
friend class List;
private:
    //int *link;    错误,需要指向新节点,即LinkNode;
    LinkNode *link;     //须改为指向LinkNode的指针;
    int data;
public:

** // LinkNode(int d); //缺少指针link的初始化**

    LinkNode(int d, LinkNode *ptr = NULL);
};

class List
{
private:
    LinkNode *first;

public:
    int Create(int val, int &Endtag);

};

//public LinkNode::LinkNode(int d){    //缺少指针link的初始化
//    data = d;
//}
LinkNode::LinkNode(int d, LinkNode *ptr){   //这里遇到了一个问题,默认参数只能够声明一次,否则会报错
    data = d;
    link = ptr;
}

// int List::Create(int val, int &Endtag){ //***错误,这样只能够创建一个节点***
    

}

int main()
{
    cout << "Hello world!" << endl;
    return 0;
}

下述代码未对first进行初始化,导致成为野指针,修改办法,将构造函数重载

#include &l
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值