单链表的创建及遍历c
时间: 2023-08-21 20:03:33 浏览: 40
单链表同样可以使用 C 语言来实现,下面是单链表的创建和遍历代码:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表结点结构体
struct ListNode {
int val;
struct ListNode* next;
};
// 创建链表
struct ListNode* createList() {
struct ListNode* head = NULL;
struct ListNode* tail = NULL;
int n;
printf("请输入链表长度:");
scanf("%d", &n);
printf("请输入链表各元素:");
for (int i = 0; i < n; i++) {
int val;
scanf("%d", &val);
struct ListNode* node = (struct ListNode*) malloc(sizeof(struct ListNode));
node->val = val;
node->next = NULL;
if (!head) {
head = node;
tail = node;
} else {
tail->next = node;
tail = node;
}
}
return head;
}
// 遍历链表
void printList(struct ListNode* head) {
while (head) {
printf("%d ", head->val);
head = head->next;
}
printf("\n");
}
int main() {
struct ListNode* head = createList();
printList(head);
return 0;
}
```
在上述代码中,我们同样定义了一个 `ListNode` 结构体来表示链表的结点,其中包含了一个 `val` 属性和一个 `next` 指针,分别表示结点的值和指向下一个结点的指针。然后,我们定义了 `createList()` 函数来创建链表,首先输入链表长度,然后逐个输入链表元素,并分别创建相应的结点,将它们连接起来。最后,函数返回链表头结点。我们还定义了 `printList()` 函数来遍历链表,并输出每个结点的值。在 `main()` 函数中,我们调用 `createList()` 函数创建链表,然后调用 `printList()` 函数遍历链表并输出每个结点的值。
运行上述代码,即可输入链表长度和各元素,然后输出链表元素。