用c语言将int a[MAX_SIZE] = {1, 2, 3, 4, 2, 3, 5, 6, 7, 8, 9, 10};的每个元素插入链表
时间: 2023-10-25 19:11:20 浏览: 58
好的,以下是用 C 语言将数组元素插入链表的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 12
struct Node {
int data;
struct Node* next;
};
int main() {
int a[MAX_SIZE] = {1, 2, 3, 4, 2, 3, 5, 6, 7, 8, 9, 10};
struct Node* head = NULL;
struct Node* tail = NULL;
for (int i = 0; i < MAX_SIZE; i++) {
struct Node* node = (struct Node*)malloc(sizeof(struct Node));
node->data = a[i];
node->next = NULL;
if (head == NULL) {
head = node;
tail = node;
} else {
tail->next = node;
tail = node;
}
}
// 遍历链表并输出每个节点的值
struct Node* p = head;
while (p != NULL) {
printf("%d ", p->data);
p = p->next;
}
// 释放链表节点的内存
p = head;
while (p != NULL) {
struct Node* temp = p;
p = p->next;
free(temp);
}
return 0;
}
```
以上代码中,我们首先定义了一个结构体 `Node`,表示链表的节点。每个节点包含两个成员变量:`data` 表示节点的值,`next` 表示指向下一个节点的指针。
然后我们定义了一个数组 `a`,并将其元素插入链表中。具体来说,我们遍历数组 `a`,对于每个元素,都创建一个新的节点,并将其插入到链表的尾部。如果链表为空,则将新节点作为头节点和尾节点;否则,将新节点插入到尾节点之后,并更新尾节点。
最后,我们遍历链表并输出每个节点的值,然后释放链表节点的内存。
阅读全文