无表头单链表的总结----动态建立链表

2018-06-18 04:11:45来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

 1 #include "head.h"
 2 struct Student *creat()
 3 {
 4     struct Student *head, *p1, *p2;// 先开辟三个结构体指针,*head,(作为返回的头指针)
 5     p1 = p2 =(struct Student *) malloc(LEN);
 6     scanf_s("%s %f", p1->num, N, &p1->score);//先读取输入的信息,据读入的信息进行判断
 7     head = NULL;  //    先使得头指针指向空指针
 8     n = 0;      //用来计数多少个链表里的成员
 9     while (strcmp(p1->num, "0") != 0)  //根据读入的信息,“0”为输入终止标号,如果不为
10 //0,则进行链表增加操作
11     {
12         ++n;   //不终止,说明要增加一位成员
13         if (n == 1) head = p1;  //先把开始开辟的地址赋给头指针,因为接下来p1会后移,
14 //没有头指针信息
15         else p2->next = p1;    //p1分两种情况,当n=1,p1赋给头指针,接下里,p1链接 
16 //上一个指针p2->next;
17         p2= p1;   //完成链接后p2后移到p1处。
18         p1 = (struct Student *)malloc(LEN);   //然后p1继续开发内存存储新成员;
19         scanf_s("%s %f", p1->num, N, &p1->score);//读入新成员信息,返回到开头,进行判读
20 //读入的信息
21     }
22     p2->next = NULL; //是p2的next作为结束标志,注意,这里是不是p1,p1用来存储“0”
23 //终止条件了
24     return head;    //返回头指针
25 }

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:[APUE]文件和目录(上)

下一篇:数组实现多项式的加减乘运算