建立一个数组链表并输出c语言
时间: 2024-12-11 15:17:05 浏览: 21
在C语言中,创建一个数组链表并不常见,因为链表通常更自然地用结构体表示,而数组通常是线性的。但是,如果你仍然想通过数组模拟链表,你可以创建一个数组,其中每个元素都包含下一个元素的索引。下面是一个简单的示例,展示如何创建这样的“数组链表”:
```c
#include <stdio.h>
// 定义链表节点结构
typedef struct Node {
int data; // 数据域
int next; // 指向下一个元素的索引
} Node;
// 数组链表的简单实现
#define SIZE 5 // 链表长度
Node arrayLinkedList[SIZE] = {0};
// 初始化链表
void initList() {
for (int i = 0; i < SIZE - 1; i++) {
arrayLinkedList[i].next = i + 1;
}
arrayLinkedList[SIZE - 1].next = -1; // 设置最后一个节点的指针为无效值
}
// 打印链表
void printList(Node* head) {
Node* current = head;
while (current->next != -1) {
printf("Data: %d -> ", current->data);
current = &arrayLinkedList[current->next];
}
printf("End of list\n");
}
int main() {
initList();
printList(arrayLinkedList); // 输出链表
return 0;
}
```
在这个例子中,`arrayLinkedList`数组实际上代表了一个单循环链表,`initList()`函数初始化了每个节点指向后面的元素。`printList()`函数遍历这个链表,并打印出数据。
阅读全文