如何用c++实现一个链表 单链表的创建、插入和删除【数据结构】

admin 百科 20
C++单链表需定义节点结构和链表类,手动管理内存;核心操作包括头插(O(1))、指定位置插入(需遍历)、按值删除(分头/中/尾处理),并需实现析构函数防止内存泄漏。

如何用c++实现一个链表 单链表的创建、插入和删除【数据结构】-第1张图片-佛山资讯网

用 C++ 实现单链表,核心是定义节点结构、管理头指针,并封装插入、删除等操作。不需要依赖 STL 容器,手动管理内存更利于理解数据结构本质。

定义节点结构和链表类

每个节点包含数据域和指向下一节点的指针;链表类维护头指针(可为 nullptr 表示空表):

struct ListNode {
    int val;
    ListNode* next;
    ListNode(int x) : val(x), next(nullptr) {}
};
<p>class LinkedList {
private:
ListNode* head;
public:
LinkedList() : head(nullptr) {}
~LinkedList(); // 后续需实现析构释放内存
};

登录后复制

在链表头部插入节点(最简单)

时间复杂度 O(1),适合频繁在开头增删的场景:

  • 新建节点,赋值
  • 新节点 next 指向原 head
  • 更新 head 指向新节点

void insertAtHead(int value) {
    ListNode* newNode = new ListNode(value);
    newNode->next = head;
    head = newNode;
}

登录后复制

在指定位置插入(如第 i 个位置,从 0 开始)

需遍历到前一个节点,注意边界检查(i 小于 0 或超过长度时可忽略或报错):

立即学习“C++免费学习笔记(深入)”;

标签: node c++

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~