c语言中如何创建单向链表并赋初始值
时间: 2023-06-10 16:04:40 浏览: 140
要创建一个单向链表并赋初始值,你需要定义一个结构体来表示链表节点,然后使用malloc函数分配节点的内存。以下是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct node {
int value;
struct node* next;
} Node;
Node* createLinkedList(int values[], int length) {
Node* head = NULL;
for (int i = length - 1; i >= 0; i--) {
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->value = values[i];
newNode->next = head;
head = newNode;
}
return head;
}
int main() {
int values[] = {1, 2, 3, 4, 5};
int length = sizeof(values) / sizeof(int);
Node* head = createLinkedList(values, length);
printf("Initial values in linked list: ");
while (head != NULL) {
printf("%d ", head->value);
head = head->next;
}
// free memory
while (head != NULL) {
Node* temp = head;
head = head->next;
free(temp);
}
return 0;
}
```
在这个示例代码中,我们定义了一个Node结构体代表链表的节点,并使用createLinkedList函数来创建带有初始值的单向链表。我们首先将head指针初始化为NULL,然后从values数组的末尾开始循环并为每个节点分配内存,将节点的值设置为values[i],将节点的next指针设置为head,然后将head指针移动到新节点。最后,我们返回头指针并打印链表中的初始值。最后我们逐个释放链表的内存。
阅读全文