easyx c语言用链表存储
时间: 2023-06-10 15:08:29 浏览: 74
链表是一种常见的数据结构,可以用来存储一组具有相同数据类型的数据。在 C 语言中,可以使用指针和动态内存分配来实现链表。
下面是一个使用链表存储整数的例子:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct node {
int data; // 数据域
struct node *next; // 指针域,指向下一个节点
} Node;
int main() {
Node *head = NULL, *p = NULL, *q = NULL;
int n, i;
scanf("%d", &n);
// 创建链表
for (i = 0; i < n; i++) {
p = (Node*) malloc(sizeof(Node)); // 创建一个新节点
scanf("%d", &p->data); // 输入节点数据
p->next = NULL; // 指向下一个节点的指针初始化为 NULL
if (head == NULL) { // 如果是第一个节点,则让头节点指向它
head = p;
} else { // 否则将新节点插入到链表尾部
q->next = p;
}
q = p; // q 指向新节点,作为下一次插入的前驱节点
}
// 遍历链表并输出节点数据
p = head;
while (p != NULL) {
printf("%d ", p->data);
p = p->next;
}
// 释放链表占用的内存
p = head;
while (p != NULL) {
q = p->next;
free(p);
p = q;
}
return 0;
}
```
上面的代码中,我们使用了一个 `Node` 结构体来表示链表中的节点。每个节点都有一个数据域和一个指向下一个节点的指针域。在 `main` 函数中,我们首先输入链表的长度 `n`,然后通过循环创建链表,将新节点插入到链表的尾部。最后,我们遍历链表并输出节点数据,然后释放链表占用的内存。