21xrx.com
2024-12-22 22:42:20 Sunday
登录
文章检索 我的文章 写文章
C++实现动态链表的创建
2023-07-08 14:12:01 深夜i     --     --
C++ 动态链表 实现 创建

C++是一种广泛使用的编程语言,在面向对象编程中具有广泛的应用。动态链表是一种利用指针实现的数据结构,可以动态地添加、删除和修改数据。在C++语言中,可以使用指针来实现动态链表的操作。

动态链表的创建过程需要以下几个步骤:

1. 定义链表结构体

在C++中,可以使用结构体来定义链表节点的数据结构。结构体可以包含一个值域和一个指向下一个节点的指针。定义链表结构体的代码如下:


struct ListNode {

  int val;

  ListNode* next;

};

这里的`ListNode`是我们自己定义的类型,`val`表示节点的值域,`next`表示指向下一个节点的指针。

2. 创建链表节点

创建链表节点时,需要先分配内存空间,然后将节点的值填入,最后将指针指向下一个节点。创建链表节点的代码如下:


ListNode* createNode(int val) {

  ListNode* node = new ListNode;

  node->val = val;

  node->next = nullptr;

  return node;

}

这里的`createNode`函数接受一个整数`val`作为参数,返回一个指向新创建节点的指针。在函数中,首先使用`new`分配内存空间,然后将值填入`val`,并将`next`指针设置为`nullptr`。

3. 添加节点到链表

将新创建的节点添加到链表中时,需要找到链表的尾部节点,将其`next`指针指向新节点即可。代码如下:


void addNode(ListNode* head, int val) {

  ListNode* node = createNode(val);

  ListNode* cur = head;

  while (cur->next)

    cur = cur->next;

  

  cur->next = node;

}

这里的`addNode`函数接受一个指向链表头节点的指针`head`和一个要添加的整数`val`,创建一个新节点,并将新节点添加到链表的尾部。

4. 删除节点

删除链表中的某个节点时,需要找到该节点的前一个节点,将其`next`指针指向该节点的下一个节点。代码如下:


void deleteNode(ListNode* head, int val) {

  ListNode* cur = head->next;

  ListNode* pre = head;

  while (cur) {

    if (cur->val == val)

      pre->next = cur->next;

      delete cur;

      break;

    

    pre = cur;

    cur = cur->next;

  }

}

这里的`deleteNode`函数接受一个指向链表头节点的指针`head`和一个要删除的整数`val`,遍历链表找到该节点,并删除该节点。

通过以上几个步骤,我们可以实现动态链表的创建、添加和删除操作。在实际的编程中,还需要考虑到异常情况的处理和内存泄漏的问题,保证代码的稳定性和可靠性。

  
  
下一篇: main函数

评论区

{{item['qq_nickname']}}
()
回复
回复