list中create函数的讲解

create()的功能应该包含为创建申请一块结构体所需的空间,并将其与原表尾连接。

typedef struct xvesheng {int xvehao;int score;char name[20];struct xvesheng *next;
} xvesheng;

上方为事先定义的结构

最初创建时应返回表头的地址,以确定链表头的地址便于访问

xvesheng *create ();

代码实现应该为:

xvesheng *create(int number) {xvesheng *head = NULL, *ptr = NULL;int xvehao, score;char name[20];while (number--) {if (head == NULL) {ptr = (xvesheng *)malloc(sizeof(xvesheng));head = ptr;} else {ptr->next = (xvesheng *)malloc(sizeof(xvesheng));ptr = ptr->next;}scanf("%d%d", &xvehao, &score);gets(name);chushihua(ptr, xvehao, score, name);}return head;
}


        因为需要区分是否为表头,所以需要进行选择,所以有一大段选择结构,当我们提前为第一个节点申请空间时,把第一个节点不储存数据时,代码会简单很多。

xvesheng *create(int number) {int xvehao, score;char name[20];xvesheng *ptr = NULL;xvesheng *head = NULL;head = (xvesheng *)malloc(sizeof(xvesheng));ptr = head;while (number--) {ptr->next = (xvesheng *)malloc(sizeof(xvesheng));ptr = ptr->next;printf("请依次输入学号,成绩,姓名(中间以换行分割)\n");scanf("%d%d", &xvehao, &score);gets(name);chushihua(ptr, xvehao, score, name);}return head;
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部