ZBLOG

使用c++11的链表和使用C语言的链表形式

在C++11中,可以使用标准库中的std::list来表示链表。它是一个双向链表容器,提供了一系列操作链表的方法和功能。

以下是一个使用C++11的链表示例:

  1. #include <iostream>
  2. #include <list>
  3. int main() {
  4. std::list<int> myList; // 创建一个空链表
  5. // 在链表尾部插入元素
  6. myList.push_back(1);
  7. myList.push_back(2);
  8. myList.push_back(3);
  9. // 遍历打印链表中的元素
  10. for (auto it = myList.begin(); it != myList.end(); ++it) {
  11. std::cout << *it << " ";
  12. }
  13. std::cout << std::endl;
  14. return 0;
  15. }

而在C语言中,可以通过定义结构体和指针来实现链表的形式。

以下是一个使用C语言的链表示例:

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. struct Node {
  4. int data;
  5. struct Node* next;
  6. };
  7. // 向链表尾部插入节点
  8. void append(struct Node** headRef, int newData) {
  9. struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
  10. newNode->data = newData;
  11. newNode->next = NULL;
  12. if (*headRef == NULL) {
  13. *headRef = newNode;
  14. return;
  15. }
  16. struct Node* lastNode = *headRef;
  17. while (lastNode->next != NULL) {
  18. lastNode = lastNode->next;
  19. }
  20. lastNode->next = newNode;
  21. }
  22. // 打印链表中的元素
  23. void printList(struct Node* node) {
  24. while (node != NULL) {
  25. printf("%d ", node->data);
  26. node = node->next;
  27. }
  28. printf("\n");
  29. }
  30. int main() {
  31. struct Node* head = NULL; // 初始化一个空链表
  32. // 向链表中插入节点
  33. append(&head, 1);
  34. append(&head, 2);
  35. append(&head, 3);
  36. // 打印链表中的元素
  37. printList(head);
  38. return 0;
  39. }

这两个示例展示了在C++11和C语言中实现链表的方式。注意,在使用C++时,推荐使用标准库中的std::list来简化操作。而在C语言中,则需要自己定义结构体和编写相应的函数来操作链表。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=8136

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?