6-1 链表的基本操作-创建一个链表 分数 10 作者 李志聪 单位 哈尔滨师范大学 有一链式结构,定义如下 : struct stu{ char name[20]; int no; struct stu *next; }; 创建一个函数create(),实现无头结点的链表,有m个结点,函数的返回值为链表的头指针。 函数接口定义: 在这里描述函数接口。例如: struct stu * create() 在这里解释接口参数。在函数中输入m,及m行数据,完成链表的创建。 裁判测试程序样例: 在这里给出函数被调用进行测试的例子。例如: #include <stdio.h> #include <stdlib.h> struct stu{ char name[20]; int no; struct stu *next;}; struct stu * create(); void show(struct stu *p){ while(p){ printf("%s %d\n",p->name,p->no); p=p->next; } } int main() { struct stu *p=NULL; p=create(); show(p); return 0; } /* 请在这里填写答案 */ 输入样例: 在这里给出一组输入。例如: 2 liming 23 maming 35 输出样例: 在这里给出相应的输出。例如: liming 23 maming 35
时间: 2024-03-19 19:46:21 浏览: 32
以下是实现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;
scanf("%d",&m);
struct stu *head, *tail, *p;
head = NULL;
for(int i = 0; i < m; i++){
p = (struct stu *)malloc(sizeof(struct stu));
scanf("%s%d", p->name, &p->no);
p->next = NULL;
if(head == NULL){
head = p;
tail = p;
}
else{
tail->next = p;
tail = p;
}
}
return head;
}
void show(struct stu *p){
while(p){
printf("%s %d\n",p->name,p->no);
p=p->next;
}
}
int main() {
struct stu *p=NULL;
p=create();
show(p);
return 0;
}
```
输入格式为第一行一个整数m,表示链表中有m个结点,接下来m行每行包含一个字符串和一个整数,表示结点的name和no。输出格式为每个结点的name和no。
阅读全文