在C++11中,可以使用标准库中的std::list
来表示链表。它是一个双向链表容器,提供了一系列操作链表的方法和功能。
以下是一个使用C++11的链表示例:
#include <iostream>
#include <list>
int main() {
std::list<int> myList; // 创建一个空链表
// 在链表尾部插入元素
myList.push_back(1);
myList.push_back(2);
myList.push_back(3);
// 遍历打印链表中的元素
for (auto it = myList.begin(); it != myList.end(); ++it) {
std::cout << *it << " ";
}
std::cout << std::endl;
return 0;
}
而在C语言中,可以通过定义结构体和指针来实现链表的形式。
以下是一个使用C语言的链表示例:
#include <stdio.h>
#include <stdlib.h>
struct Node {
int data;
struct Node* next;
};
// 向链表尾部插入节点
void append(struct Node** headRef, int newData) {
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
newNode->data = newData;
newNode->next = NULL;
if (*headRef == NULL) {
*headRef = newNode;
return;
}
struct Node* lastNode = *headRef;
while (lastNode->next != NULL) {
lastNode = lastNode->next;
}
lastNode->next = newNode;
}
// 打印链表中的元素
void printList(struct Node* node) {
while (node != NULL) {
printf("%d ", node->data);
node = node->next;
}
printf("\n");
}
int main() {
struct Node* head = NULL; // 初始化一个空链表
// 向链表中插入节点
append(&head, 1);
append(&head, 2);
append(&head, 3);
// 打印链表中的元素
printList(head);
return 0;
}
这两个示例展示了在C++11和C语言中实现链表的方式。注意,在使用C++时,推荐使用标准库中的std::list
来简化操作。而在C语言中,则需要自己定义结构体和编写相应的函数来操作链表。
内容由零声教学AI助手提供,问题来源于学员提问