6-1 链表的基本操作-创建一个链表 分数 10 作者 李志聪 单位 哈尔滨师范大学 有一链式结构,定义如下 : struct stu{ char name[20]; int no; struct stu *next; }; 创建一个函数create(),实现无头结点的链表,有m个结点,函数的返回值为链表的头指针。
时间: 2024-03-07 19:47:42 浏览: 214
好的,我来为您解答。下面是实现无头结点的链表,有m个结点的create()函数的代码:
```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, *p, *q;
int i;
head = NULL;
// 循环创建m个结点
for(i=0; i<m; i++){
p = (struct stu*)malloc(sizeof(struct stu)); // 动态分配内存
printf("请输入第%d个学生的姓名和学号:", i+1);
scanf("%s %d", p->name, &p->no);
p->next = NULL;
// 如果是第一个结点,让head指向它
if(head == NULL){
head = p;
}
else{
q->next = p; // 让上一个结点的next指向当前结点
}
q = p; // 记录当前结点,方便下一次循环使用
}
return head; // 返回链表头指针
}
// 测试代码
int main(){
int m = 3; // 创建3个结点
struct stu *head = create(m); // 创建链表
struct stu *p = head;
// 遍历链表并输出每个结点的信息
while(p != NULL){
printf("%s %d\n", p->name, p->no);
p = p->next;
}
return 0;
}
```
希望可以帮到您!
阅读全文