#include <stdio.h> #include <stdlib.h> struct node { int data; struct node *next; }; struct node *create_list(int n) { struct node *head = NULL, *tail = NULL; int i, num; for (i = 0; i < n; i++) { printf("请输入第 %d 个节点的值:", i + 1); scanf("%d", &num); struct node *p = (struct node *)malloc(sizeof(struct node)); p->data = num; p->next = NULL; if (head == NULL) { head = tail = p; } else { tail->next = p; tail = p; } } return head; } void print_list(struct node *head) { struct node *p = head; while (p != NULL) { printf("%d ", p->data); p = p->next; } printf("\n"); } int main() { int n; printf("请输入链表的节点个数:"); scanf("%d", &n); struct node *head = create_list(n); printf("链表的值为:"); print_list(head); return 0; }
时间: 2024-01-24 10:02:21 浏览: 69
#include<stdio.h>
这段代码实现了创建一个链表,并且输出链表中各节点的值。具体来说,代码中定义了一个结构体 `node`,包含一个 `int` 类型的数据成员 `data`,以及一个指向下一个节点的指针 `next`。`create_list` 函数通过循环输入每个节点的值,并动态分配内存空间创建节点,并将新节点插入链表尾部。其中,如果链表为空,则将新节点作为链表头;否则,将新节点插入链表尾部。`print_list` 函数遍历链表并输出每个节点的值。在 `main` 函数中,首先输入链表节点的个数,然后调用 `create_list` 函数创建链表,并调用 `print_list` 函数输出链表中各节点的值。
阅读全文