要使用list.h實現雙向鏈表,首先需要包含list.h頭文件并定義一個結構體來表示節點,例如:
#include "list.h"
struct Node {
int data;
struct Node* next;
struct Node* prev;
};
然后可以使用list.h提供的函數來操作雙向鏈表,例如:
struct List list;
list_init(&list);
struct Node* node1 = malloc(sizeof(struct Node));
node1->data = 1;
list_add_tail(&list, node1);
struct Node* node2 = malloc(sizeof(struct Node));
node2->data = 2;
list_add_tail(&list, node2);
struct Node* node3 = malloc(sizeof(struct Node));
node3->data = 3;
list_add_tail(&list, node3);
struct Node* current = NULL;
list_for_each_entry(current, &list, struct Node, next) {
printf("%d\n", current->data);
}
在這個例子中,首先初始化一個雙向鏈表list,并創建三個節點node1、node2和node3,然后將它們依次添加到鏈表的尾部。最后使用list_for_each_entry函數遍歷鏈表并打印節點的數據。
通過這種方式,就可以使用list.h實現雙向鏈表的功能。需要注意的是,需要在使用完節點后手動釋放內存,以避免內存泄漏。