在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
這樣就完成了對靜態鏈表的遍歷。注意,靜態鏈表的大小是固定的,因此需要提前分配足夠的空間。在實際應用中,可以根據需求調整靜態鏈表的最大節點數。