21xrx.com
2025-03-29 20:20:55 Saturday
文章检索 我的文章 写文章
C++实现升序链表并遍历输出
2023-06-30 18:31:28 深夜i     8     0
C++ 升序链表 遍历输出

C++是一种高效的编程语言,被广泛应用于开发各种类型的软件,包括操作系统、游戏、应用程序等。一个常见的编程问题是如何实现一个升序链表并遍历输出其中的元素。下面将介绍如何使用C++来实现这个问题。

首先,在C++中实现链表需要定义一个节点结构体,该结构体有两个属性:一个是节点的值,另一个是指向下一个节点的指针。代码如下:

struct ListNode {
  int val;
  ListNode* next;
  ListNode(int x) : val(x), next(NULL) {}
};

接下来,我们需要定义一个链表类,该类包含该链表的头节点指针。代码如下:

class LinkedList {
public:
  ListNode* head;
  LinkedList()
    head = NULL;
  
};

现在,我们来实现升序链表的插入操作。我们可以在链表中找到第一个大于或等于要插入元素的节点,然后将新节点插入其前面。如果没有这样的节点,就将新节点添加到链表末尾。代码如下:

void insertNode(LinkedList& list, int val) {
  ListNode* new_node = new ListNode(val);
  if (list.head == NULL || list.head->val >= val)
    new_node->next = list.head;
    list.head = new_node;
   else {
    ListNode* cur = list.head;
    while (cur->next != NULL && cur->next->val < val)
      cur = cur->next;
    
    new_node->next = cur->next;
    cur->next = new_node;
  }
}

最后,我们来实现链表的遍历操作,并输出其中的元素。代码如下:

void printList(LinkedList list) {
  ListNode* cur = list.head;
  while (cur != NULL)
    cout << cur->val << " ";
    cur = cur->next;
  
  cout << endl;
}

现在,我们来测试一下我们的代码。代码如下:

int main() {
  LinkedList list;
  insertNode(list, 3);
  insertNode(list, 1);
  insertNode(list, 4);
  insertNode(list, 2);
  printList(list);
  return 0;
}

输出结果如下:

1 2 3 4

以上就是使用C++来实现升序链表并遍历输出其中的元素的完整代码。通过这个简单的例子,我们可以看到C++是一种非常高效和灵活的编程语言,可以用来解决各种类型的编程问题,包括链表和排序等问题。

  
  

评论区

请求出错了