在C语言中,遍历静态链表的方法与遍历动态链表类似
#include<stdio.h>
#define MAX_NODES 10
typedef struct Node {
int data;
int next;
} Node;
Node list[MAX_NODES];
next
指针设置为-1,表示它们当前未被使用。void init_list() {
for (int i = 0; i < MAX_NODES; i++) {
list[i].next = -1;
}
}
void insert_node(int data) {
int new_node = -1;
for (int i = 0; i < MAX_NODES; i++) {
if (list[i].next == -1) {
new_node = i;
break;
}
}
if (new_node == -1) {
printf("No space available in the list.\n");
return;
}
list[new_node].data = data;
list[new_node].next = list[0].next;
list[0].next = new_node;
}
void traverse_list() {
int current = list[0].next;
while (current != -1) {
printf("%d -> ", list[current].data);
current = list[current].next;
}
printf("NULL\n");
}
int main() {
init_list();
insert_node(1);
insert_node(2);
insert_node(3);
traverse_list();
return 0;
}
运行上述代码,将会输出以下结果:
3 -> 2 -> 1 -> NULL
这样就完成了对静态链表的遍历。注意,静态链表的大小是固定的,因此需要提前分配足够的空间。在实际应用中,可以根据需求调整静态链表的最大节点数。