21xrx.com
2025-03-24 00:20:41 Monday
文章检索 我的文章 写文章
C++使用尾插法建立单链表完整代码
2023-07-07 19:44:31 深夜i     11     0
C++ 尾插法 单链表 建立 完整代码

C++是一门强大的编程语言,它的语法简单而又灵活,可以用来处理各种各样的数据结构。其中,单链表是一种常用的数据结构,可以有效地管理数据,提高程序的运行效率。接下来,我们就来介绍一种使用尾插法建立单链表的完整代码。

在C++中,单链表可以通过结构体来定义。首先,我们需要定义一个结构体来存储链表的节点信息,包括节点的值和下一个节点的指针。代码如下:

struct ListNode {
  int val;
  ListNode* next;
};

接下来,我们就要使用尾插法来建立单链表。尾插法是将新节点插入到链表的末尾,因此需要维护一个指向链表尾部的指针。具体实现步骤如下:

1. 定义链表头和尾指针。

ListNode *head = NULL;
ListNode *tail = NULL;

2. 初始化链表头指针和尾指针。

head = new ListNode;
tail = head;
tail->next = NULL;

3. 循环读入数据,并用尾插法建立链表。

int n; // 数据个数
cin >> n;
for(int i=0; i<n; i++) {
  int x; // 读入数据
  cin >> x;
  ListNode *node = new ListNode; // 创建新节点
  node->val = x; // 节点的值为输入数据
  node->next = NULL; // 将新节点的next指针置为空
  tail->next = node; // 尾指针的next指针指向新节点
  tail = node; // 更新尾指针的位置
}

4. 输出链表中的数据。

ListNode *p = head->next; // 链表的第一个节点
while(p != NULL)
  cout << p->val << " ";
  p = p->next;

完整的代码如下:

#include <iostream>
using namespace std;
struct ListNode {
  int val;
  ListNode* next;
};
int main() {
  ListNode *head = NULL;
  ListNode *tail = NULL;
  head = new ListNode;
  tail = head;
  tail->next = NULL;
  int n; // 数据个数
  cin >> n;
  for(int i=0; i<n; i++) {
    int x; // 读入数据
    cin >> x;
    ListNode *node = new ListNode; // 创建新节点
    node->val = x; // 节点的值为输入数据
    node->next = NULL; // 将新节点的next指针置为空
    tail->next = node; // 尾指针的next指针指向新节点
    tail = node; // 更新尾指针的位置
  }
  ListNode *p = head->next; // 链表的第一个节点
  while(p != NULL)
    cout << p->val << " ";
    p = p->next;
  
  return 0;
}

以上就是使用C++尾插法建立单链表的完整代码。通过使用这种方法,我们可以方便地建立、操作和管理单链表,提高程序的效率与可读性。

  
  

评论区