有一链式结构,定义如下 : struct stu{ char name[20]; int no; struct stu *next; }; 创建一个函数create(),实现无头结点的链表,有m个结点,函数的返回值为链表的头指针。
时间: 2024-02-12 12:05:16 浏览: 42
C++ 使用模板实现一个List的实例
下面是一个实现该功能的create()函数的示例代码:
```
struct stu* create(int m){
struct stu *head = NULL, *p = NULL;
int i;
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 = head;
head = p;
}
return head;
}
```
该函数接受一个整数m作为参数,表示链表中的结点个数。在函数内部,首先定义了一个头指针head和一个结点指针p。然后通过循环不断读入学生信息,每读入一个学生信息就动态分配一个结点并将其插入链表头部。最后返回头指针head。需要注意的是,由于是无头结点的链表,所以在插入第一个结点时,头指针head应该初始化为NULL。
阅读全文