21xrx.com
2025-03-27 09:42:15 Thursday
文章检索 我的文章 写文章
C++代码:头插法
2023-07-11 15:44:19 深夜i     35     0
C++ 代码 头插法

C++语言是一种面向对象的编程语言,在程序员的开发中常常用到各种数据结构和算法。其中,头插法是一种简单有效的链表插入方法,可以在链表头部快速插入新的节点。

头插法的实现和其他链表插入方法不同,它是将新节点插入到链表的头部,而不是尾部或中间。这种方法的优点是插入速度非常快,因为不需要遍历整个链表。另外,头插法也使得链表的操作更加简单和高效。

下面是头插法的示例代码:

#include <iostream>
using namespace std;
struct ListNode {
  int val;
  ListNode *next;
  ListNode(int x) : val(x), next(NULL) {}
};
ListNode* insert(ListNode* head, int val) {
  ListNode* new_node = new ListNode(val);
  new_node->next = head;
  return new_node;
}
int main() {
  ListNode* head = NULL;
  head = insert(head, 1);
  head = insert(head, 2);
  head = insert(head, 3);
  ListNode* ptr = head;
  while (ptr != NULL)
    cout << ptr->val << " ";
    ptr = ptr->next;
  
  cout << endl;
  return 0;
}

在这个例子中,我们定义了一个链表节点结构体ListNode,其中包含一个数值val和一个指向下一个节点的指针next。链表的头部指针head开始为NULL,表示链表为空。我们通过insert函数不断调用头插法,在头部插入三个元素1、2、3,具体实现就是通过new操作符动态分配一个新节点,并将其指向head节点,最后让head指针指向新节点。

最后,我们通过遍历整个链表,将所有节点的值依次输出。这个例子展示了头插法的简单易用和高效性能。可以看到,头插法在插入节点时不需要遍历整个链表,操作简单快捷。如果需要频繁插入节点,头插法是一个很好的选择。

  
  

评论区

请求出错了