教我用C++写一个循环链表
时间: 2023-02-06 22:58:46 浏览: 109
C语言实现循环链表
好的,循环链表是一种特殊的链表,它的最后一个节点的下一个节点指向第一个节点,形成一个环。在 C 语言中,可以使用结构体来表示一个节点,包含数据域和指针域。
下面是一个简单的循环链表的例子,它包含了创建、插入、删除和遍历节点的操作:
```
#include <stdio.h>
#include <stdlib.h>
// 定义节点结构体
struct Node {
int data;
struct Node *next;
};
// 创建一个新节点
struct Node *create_node(int data) {
struct Node *new_node = (struct Node *)malloc(sizeof(struct Node));
new_node->data = data;
new_node->next = NULL;
return new_node;
}
// 在链表的末尾插入一个新节点
void insert_node(struct Node **head, int data) {
struct Node *new_node = create_node(data);
// 如果链表为空,则新节点成为第一个节点
if (*head == NULL) {
*head = new_node;
new_node->next = *head;
return;
}
// 否则,找到链表的最后一个节点
struct Node *curr = *head;
while (curr->next != *head) {
curr = curr->next;
}
// 将新节点插入到最后一个节点的后面
curr->next = new_node;
new_node->next = *head;
}
// 从链表中删除一个节点
void delete_node(struct Node **head, int data) {
// 如果链表为空,则无法删除
if (*head == NULL) {
return;
}
//
阅读全文