循环链表是一种特殊形式的链表,它的最后一个节点指向链表的第一个节点,形成一个闭环。在 C 语言中,可以通过指针来实现循环链表。以下是一个简单的循环链表的示例代码:
#include <stdio.h> #include <stdlib.h> #include <stdbool.h> // 定义循环链表节点 typedef struct Node { int data; struct Node *next; } Node; // 创建循环链表 Node* createCircularLinkedList(int n) { if (n <= 0) { return NULL; } Node *head = NULL; Node *prev = NULL; for (int i = 1; i <= n; i++) { Node *newNode = (Node *)malloc(sizeof(Node)); newNode->data = i; if (head == NULL) { head = newNode; } else { prev->next = newNode; } newNode->next = head; prev = newNode; } return head; } // 打印循环链表 void printCircularLinkedList(Node *head) { if (head == NULL) { printf("循环链表为空\\n"); return; } Node *current = head; do { printf("%d ", current->data); current = current->next; } while (current != head); printf("\\n"); } // 销毁循环链表 void destroyCircularLinkedList(Node *head) { if (head == NULL) { return; } Node *current = head; Node *next; do { next = current->next; free(current); current = next; } while (current != head); } int main() { int n; printf("请输入循环链表的大小:"); scanf("%d", &n); Node *head = createCircularLinkedList(n); printf("循环链表内容:"); printCircularLinkedList(head); destroyCircularLinkedList(head); return 0; }
在这段代码中, 香港挂牌彩图之全篇资料最完整篇 广东二八免费资料 结构表示循环链表的节点。 函数用于创建循环链表, 函数用于打印循环链表的内容, 函数用于销毁循环链表。需要注意的是,循环链表的操作需要特别小心,以避免陷入死循环或内存泄漏。