21xrx.com
2024-12-22 22:19:00 Sunday
登录
文章检索 我的文章 写文章
【C++教程】使用头插法构建单链表,实现链表内容由用户输入
2023-06-27 15:02:51 深夜i     --     --
C++ 头插法 单链表 用户输入

C++教程:使用头插法构建单链表,实现链表内容由用户输入

单链表作为一种基础的数据结构,经常在编程中使用,掌握单链表的构建方法对学习数据结构和算法非常有帮助。本教程将介绍如何使用头插法构建单链表,并且实现链表内容由用户输入的功能。

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


struct ListNode {

  int val;

  ListNode* next;

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

};

在这个结构体中,val代表节点的数据,next代表指向下一节点的指针,初始值为nullptr。

接下来,我们要定义一个函数,用于构建单链表。


ListNode* buildList() {

  ListNode* head = nullptr;

  ListNode* cur = head;

  int val;

  cout << "请输入链表中的数据,以-1为结束:" << endl;

  cin >> val;

  while (val != -1) {

    ListNode* node = new ListNode(val);

    if (head == nullptr)

      head = node;

      cur = head;

    

    else

      cur->next = node;

      cur = cur->next;

    

    cin >> val;

  }

  return head;

}

在这个函数中,我们首先定义了一个指向头节点的指针head和一个指向节点的指针cur,初始值均为nullptr。然后,我们使用cout和cin函数提示用户输入数据,这里以-1为结束标志。在while循环中,我们定义一个节点指针node,并为其赋值为用户输入的数据。然后判断头节点是否为空,若为空,则将head指向node,同时让cur也指向head。否则,将cur节点的next指向node,这样就会形成一个链表。最后,再次使用cin函数让用户输入数据,直到输入-1,表示链表已经构建好,返回头节点head。

至此,我们已经完成了单链表的构建过程。下面是完整的代码,可以直接运行。


#include <iostream>

using namespace std;

struct ListNode {

  int val;

  ListNode* next;

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

};

ListNode* buildList() {

  ListNode* head = nullptr;

  ListNode* cur = head;

  int val;

  cout << "请输入链表中的数据,以-1为结束:" << endl;

  cin >> val;

  while (val != -1) {

    ListNode* node = new ListNode(val);

    if (head == nullptr)

      head = node;

      cur = head;

    

    else

      cur->next = node;

      cur = cur->next;

    

    cin >> val;

  }

  return head;

}

int main() {

  ListNode* head = buildList();

  return 0;

}

在实际使用中,可以根据需要对单链表进行增删改查等操作。相信通过学习本教程,大家已经掌握了使用头插法构建单链表,并且实现链表内容由用户输入的方法。

  
  

评论区

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