c语言实现:链表的基本操作-创建一个链表有一链式结构,定义如下 : struct stu{ char name[20]; int no; struct stu *next; }; 创建一个函数create(),实现无头结点的链表,有m个结点,函数的返回值为链表的头指针。
时间: 2024-02-25 11:55:49 浏览: 60
下面是创建一个无头结点的链表,有m个结点的C语言代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct stu {
char name[20];
int no;
struct stu *next;
};
// 创建链表
struct stu *create(int m) {
struct stu *head = NULL, *p = NULL, *q = NULL;
int i;
for (i = 1; i <= m; i++) {
p = (struct stu *)malloc(sizeof(struct stu));
printf("请输入第%d个学生的姓名和学号:", i);
scanf("%s %d", p->name, &p->no);
p->next = NULL;
if (head == NULL) {
head = p;
} else {
q->next = p;
}
q = p;
}
return head;
}
int main() {
struct stu *head = NULL, *p = NULL;
head = create(3); // 创建一个有 3 个结点的链表
// 遍历链表,输出每个结点的信息
for (p = head; p != NULL; p = p->next) {
printf("姓名:%s 学号:%d\n", p->name, p->no);
}
return 0;
}
```
上面代码中,`create` 函数接收一个整数参数 `m`,表示链表中结点的个数,然后依次输入每个结点的姓名和学号,创建一个新的结点,将其插入到链表的尾部,最后返回链表的头指针。
在主函数中,我们调用 `create` 函数创建一个有3个结点的链表,然后使用 `for` 循环遍历链表,输出每个结点的姓名和学号。
阅读全文