c++单向循环链表实现
时间: 2024-09-30 17:13:56 浏览: 32
在C++中,单向循环链表是一种特殊的线性数据结构,其中每个节点包含一个指向下一个节点的指针,而最后一个节点的指针通常指向第一个节点,形成了一个环形结构。以下是简单的单向循环链表的实现:
```cpp
// 定义链表节点
struct Node {
int data; // 节点存储的数据
Node* next; // 指向下一个节点的指针
};
// 创建链表头结点
Node* createList() {
return new Node{0, nullptr};
}
// 插入节点到链表头部
void insertAtStart(Node** head, int value) {
Node* newNode = new Node{value, *head}; // 新节点的next指向前一个头节点
if (*head != nullptr)
(*head)->next = newNode; // 更新头节点的next指针
else
*head = newNode; // 如果头节点为空,则设置新的头节点
}
// 遍历循环链表
void traverse(Node* head) {
Node* current = head;
do {
std::cout << current->data << " ";
current = current->next;
} while (current != head);
std::cout << "\n";
}
// 示例:
int main() {
Node* head = createList();
insertAtStart(&head, 5); // 插入值5
insertAtStart(&head, 4);
insertAtStart(&head, 3);
std::cout << "Traversing the circular linked list: ";
traverse(head);
delete head; // 清理内存
return 0;
}
```
阅读全文