21xrx.com
2025-07-11 23:22:46 Friday
文章检索 我的文章 写文章
如何使用C++尾插法创建有头节点的单链表?
2023-07-04 22:16:12 深夜i     67     0
C++ 尾插法 创建 有头节点 单链表

在使用C++编程语言中,单链表是一种重要的数据结构,它可以帮助程序员在处理各种问题时更加高效地存储和操作数据。而在创建单链表时,尾插法是一种常用的方法,它可以快速地将多个节点连接起来,从而形成一个完整的单链表。下面,我们将介绍如何使用C++尾插法创建有头节点的单链表。

首先,我们需要定义一个单链表的节点类,包含数据域和指针域两个成员变量,分别用于存储节点的数据和指向下一个节点的指针。代码如下:

class ListNode {
public:
  int val;
  ListNode* next;
  ListNode(int data)
    this->val = data;
    this->next = NULL;
  
};

接下来,在主函数中,我们可以创建一个头节点head,并将其next指针初始化为NULL,表示该链表为空。代码如下:

int main() {
  ListNode* head = new ListNode(0);
  head->next = NULL;
  // 尾插法创建链表
  // ...
  return 0;
}

然后,我们需要定义一个尾插法函数,用于将若干个节点插入到链表的尾部。具体实现过程如下:

void tailInsert(ListNode* head, int data) {
  // 创建一个新的节点
  ListNode* newNode = new ListNode(data);
  // 找到链表的最后一个节点
  ListNode* lastNode = head;
  while (lastNode->next != NULL)
    lastNode = lastNode->next;
  
  // 将新节点插入到最后一个节点的后面
  lastNode->next = newNode;
  newNode->next = NULL;
}

在这个尾插法函数中,我们首先创建一个新的节点newNode,然后遍历整个链表,找到最后一个节点lastNode,并将新节点插入到其next指针所指向的位置。需要注意的是,新节点的next指针需要初始化为NULL,以便在插入操作后成为新的最后一个节点。

最后,在主函数中,我们可以多次调用尾插法函数,将若干个数据插入到链表的尾部。代码如下:

int main() {
  ListNode* head = new ListNode(0);
  head->next = NULL;
  // 尾插法创建链表
  tailInsert(head, 1);
  tailInsert(head, 2);
  tailInsert(head, 3);
  tailInsert(head, 4);
  // 输出链表的值
  ListNode* p = head;
  while (p->next != NULL)
    p = p->next;
    cout << p->val << " ";
  
  return 0;
}

在这个主函数中,我们先创建了一个头节点head,并将其next指针初始化为NULL。然后,我们调用四次tailInsert函数,将值为1、2、3、4的四个节点依次插入到链表的尾部。最后,我们遍历整个链表,输出各个节点的值。输出结果应该为:1 2 3 4。

总之,使用C++尾插法创建有头节点的单链表并不难,只需要按照上述步骤编写代码即可。如果需要在实际开发中使用单链表,还需要注意内存泄漏等问题,不过这些问题在此处不再赘述。

  
  
下一篇: 来编写的?

评论区