21xrx.com
2024-11-22 08:14:54 Friday
登录
文章检索 我的文章 写文章
C++链表创建代码
2023-07-03 13:16:07 深夜i     --     --
C++ 链表 创建 代码

链表是一种线性数据结构,它可以用来存储和处理一系列数据。在C++中,我们可以使用指针来实现链表的创建和操作。下面就来看看如何用C++代码实现一个链表。

首先,我们需要定义一个节点结构体来表示链表中的节点,它包括一个数据成员和一个指向下一个节点的指针。


struct ListNode {

  int val;

  ListNode* next;

  ListNode(int x) : val(x), next(nullptr) {}

};

接着,我们可以定义一个函数来创建一个链表,并返回链表的头节点指针。这个函数会接收一个整数数组作为输入,依次将数组中的元素插入到链表中。具体实现如下:


ListNode* createLinkedList(vector<int>& nums) {

  ListNode* head = nullptr;

  if (nums.empty())

    return head;

  

  head = new ListNode(nums[0]);

  ListNode* cur = head;

  for (int i = 1; i < nums.size(); ++i) {

    cur->next = new ListNode(nums[i]);

    cur = cur->next;

  }

  return head;

}

该函数首先判断输入数组是否为空,如果是,则返回空指针。否则,创建链表的头节点,并用一个指针变量cur指向该节点。然后遍历数组中的元素,依次插入新的节点到链表中,并更新cur指针变量,使其指向新插入的节点。最后返回头节点指针即可。

创建了链表,并不意味着我们已经完成了链表的操作。我们还可以定义其他函数来对链表进行不同的操作,例如插入、删除、查找等。下面给出一个将元素插入链表尾部的函数:


void insertTailNode(ListNode* head, int val) {

  ListNode* cur = head;

  while (cur->next)

    cur = cur->next;

  

  cur->next = new ListNode(val);

}

该函数接收链表的头节点指针和待插入的元素值作为输入。它首先遍历链表,找到链表的最后一个节点,并将新的节点插入到此节点之后。

最后,我们还需要在程序结束时记得释放链表中的空间,避免内存泄漏。可以定义一个函数来删除链表中的所有节点:


void deleteLinkedList(ListNode* head) {

  ListNode* cur = head;

  while (cur) {

    ListNode* temp = cur;

    cur = cur->next;

    delete temp;

  }

}

该函数接收链表的头节点指针作为输入。它利用一个指针变量cur来遍历整个链表,并依次删除每一个节点。每次删除一个节点前,我们需要将指针变量temp指向该节点,以便在删除节点后释放空间。

以上就是一个简单的链表创建和操作代码的实现。当然,这只是其中的一部分,链表的操作还有很多很多,需要在实际应用中灵活运用。

  
  

评论区

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