静态链表初始化c语言代码
时间: 2024-09-25 14:18:29 浏览: 43
静态链表是一种特殊的线性数据结构,它的节点是在程序开始时就分配好内存的,而不是动态地随着元素增加而增加。在C语言中,我们可以创建一个静态链表节点结构体,并通过全局变量或数组的形式预先定义节点的数量。
下面是一个简单的静态链表初始化的示例,假设我们有一个名为`Node`的结构体,包含`data`和`next`两个成员(`next`指向下一个节点的指针),并且已经定义了一个大小为5的节点数组:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表节点结构
typedef struct Node {
int data;
struct Node* next; // 指向下一个节点的指针
} Node;
// 初始化静态链表
void initializeStaticList(Node list[], int size) {
for (int i = 0; i < size; i++) {
// 对于每个节点,将next初始化为NULL
list[i].next = NULL;
// 如果是第一个节点,还需要设置data
if (i == 0)
list[i].data = i + 1;
else
list[i].data = 0; // 示例中仅用于演示,实际应用可能需要其他值
}
}
// 测试静态链表
int main() {
Node staticList[5];
initializeStaticList(staticList, 5);
for (int i = 0; i < sizeof(staticList)/sizeof(Node); i++) {
printf("Node %d: Data = %d, Next = %p\n", i, staticList[i].data, staticList[i].next);
}
return 0;
}
```
在这个例子中,`initializeStaticList`函数负责初始化每个节点的`next`指针,并设置第一个节点的数据。注意,由于静态链表是固定的,如果节点数据需要动态填充,你应该在初始化函数之外添加相应逻辑。
阅读全文