双向链表是一种常见的数据结构,它由多个节点组成,每个节点包含一个数据元素和两个指针,分别指向前一个节点和后一个节点。以下是使用以下结构初始化双向链表的步骤:
struct Node {
int data;
struct Node* prev;
struct Node* next;
};
struct Node* head = NULL;
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
newNode->data = 10;
newNode->prev = NULL;
newNode->next = NULL;
if (head == NULL) {
// 如果链表为空,将头节点指向新节点
head = newNode;
} else {
// 如果链表不为空,将新节点的后一个指针指向头节点,将头节点的前一个指针指向新节点
newNode->next = head;
head->prev = newNode;
// 将头节点指向新节点
head = newNode;
}
#include <stdio.h>
#include <stdlib.h>
struct Node {
int data;
struct Node* prev;
struct Node* next;
};
int main() {
struct Node* head = NULL;
// 创建新节点
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
newNode->data = 10;
newNode->prev = NULL;
newNode->next = NULL;
// 将新节点插入到链表的开头
if (head == NULL) {
head = newNode;
} else {
newNode->next = head;
head->prev = newNode;
head = newNode;
}
// 打印链表中的数据元素
struct Node* current = head;
while (current != NULL) {
printf("%d ", current->data);
current = current->next;
}
return 0;
}
这样,我们就成功地使用以上结构初始化了一个双向链表。请注意,以上代码仅为示例,实际使用时需要根据具体需求进行修改和扩展。
领取专属 10元无门槛券
手把手带您无忧上云