用一个c语言程序演示链表编历
时间: 2023-07-25 13:26:36 浏览: 55
好的,下面是一个简单的链表遍历的C语言代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表节点结构体
struct ListNode {
int val;
struct ListNode *next;
};
// 遍历链表
void traverseList(struct ListNode *head) {
struct ListNode *p = head;
while (p != NULL) {
printf("%d ", p->val);
p = p->next;
}
printf("\n");
}
int main() {
// 创建链表
struct ListNode *head, *p, *q;
int n, x;
printf("请输入链表长度:");
scanf("%d", &n);
head = NULL;
for (int i = 0; i < n; i++) {
printf("请输入第%d个节点的值:", i + 1);
scanf("%d", &x);
p = (struct ListNode *)malloc(sizeof(struct ListNode));
p->val = x;
p->next = NULL;
if (head == NULL) {
head = p;
} else {
q->next = p;
}
q = p;
}
// 遍历链表
printf("链表的值为:");
traverseList(head);
return 0;
}
```
在上述代码中,我们首先通过输入创建了一个链表,然后通过遍历链表来输出链表中所有节点的值。遍历链表的函数 traverseList() 首先将指针 p 指向链表头节点 head,然后依次访问每个节点并输出节点的值,直到访问到链表尾部(即 p 指向 NULL)。
在创建链表的过程中,我们需要依次输入每个节点的值,并将其插入到链表中。具体来说,我们通过指针 p 来表示当前要插入的节点,然后将其连接到链表末尾,并将指针 q 指向链表尾节点,以便下次插入节点时可以直接在链表末尾插入。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)