创建双向循环链表C语言
时间: 2024-10-12 16:02:42 浏览: 44
创建双向循环链表在C语言中涉及到结构体、指针以及链表的基本操作。首先,我们需要定义一个节点结构体,包含前驱和后继指针:
```c
typedef struct Node {
int data; // 节点存储的数据
struct Node* prev; // 指向前一个节点
struct Node* next; // 指向下一个节点
} Node;
```
接下来,我们可以定义函数来创建链表头结点、添加新节点到链表尾部并保持循环:
```c
// 初始化一个空的双向循环链表
Node* createDoublyCircularList() {
Node* head = (Node*)malloc(sizeof(Node));
if (head) {
head->data = 0;
head->prev = head;
head->next = head;
}
return head;
}
// 添加新节点到链表尾部
void addNodeToTail(Node** head, int value) {
Node* newNode = (Node*)malloc(sizeof(Node));
if (newNode) {
newNode->data = value;
newNode->prev = (*head)->prev;
newNode->next = (*head);
(*head)->prev->next = newNode;
(*head)->prev = newNode;
} else {
printf("Memory allocation failed.\n");
}
}
```
阅读全文