请写出双链表的结构体定义
时间: 2024-10-12 22:16:44 浏览: 22
用C++写的双向循环链表派生栈和队列
双链表是一种数据结构,其中每个节点包含两个指针,分别指向它的前一个节点和后一个节点。在C语言中,你可以这样定义一个简单的双向链表的结构体:
```c
typedef struct Node {
int data; // 节点存储的数据
struct Node* prev; // 指向前一个节点的指针
struct Node* next; // 指向后一个节点的指针
} Node;
// 或者使用 C99 的可选类型声明(如果支持)
struct Node {
int data;
struct Node* prev __attribute__((aligned(8))); // 对64位平台增加内存对齐
struct Node* next __attribute__((aligned(8)));
};
```
这里,`Node`是链表节点的结构体类型,`data`用来存储数据,`prev`和`next`分别是指向前一个节点和后一个节点的指针。为了提高内存效率,特别是对于64位系统,我们还可以使用`__attribute__((aligned(8)))`来指定`prev`和`next`字段需要对齐到8字节边界。
阅读全文