21xrx.com
2025-03-19 05:30:15 Wednesday
文章检索 我的文章 写文章
C++实现头插法建立单链表:完整代码
2023-07-13 17:21:03 深夜i     --     --
C++ 头插法 单链表 建立 完整代码

C++是一种以对象为中心的编程语言,具有高效性、可移植性、可读性等特点,广泛应用于系统软件、网络通信、GUI界面、游戏开发等诸多领域。在C++中,链表是一种重要的数据结构,可以用于快速插入、删除和查找数据。头插法建立单链表就是链表中的一种常见方法。

下面是C++实现头插法建立单链表的完整代码:

#include <iostream>
using namespace std;
// 定义链表结构体
struct ListNode {
  int val;
  ListNode* next;
  ListNode(int x) : val(x), next(NULL) {}
};
// 头插法建立单链表
ListNode* createList() {
  ListNode* head = new ListNode(-1); // 哑结点,方便操作
  int x;
  while (cin >> x) {
    ListNode* node = new ListNode(x); // 新建结点
    node->next = head->next; // 插入到链表头部
    head->next = node;
  }
  return head->next; // 返回链表头指针
}
// 遍历输出链表
void printList(ListNode* head) {
  while (head != NULL)
    cout << head->val << " ";
    head = head->next;
  
  cout << endl;
}
int main() {
  ListNode* head = createList(); // 建立单链表
  printList(head); // 遍历输出结果
  return 0;
}

上述代码中,我们定义了一个链表结构体`ListNode`,其中`val`表示结点的值,`next`表示指向下一结点的指针。在`createList()`函数中,我们使用循环输入,不断新建结点,并将其插入到链表头部,以此来建立单链表。在插入时,我们使用`node->next = head->next`将新结点指向原链表头结点的下一结点,再使用`head->next = node`将链表头指向新结点,从而完成了插入操作。

最后,在`printList()`函数中,我们将链表从头至尾遍历一遍,输出结点的值,以此来验证我们是否成功建立了单链表。

总之,C++实现头插法建立单链表是链表数据结构中的一项基本操作,掌握此方法有助于扩展我们在链表上的操作。希望上述代码对您有所帮助!

  
  

评论区