今天学习了动态链表,刚看的时候是一头雾水,不知所谓!
看了几遍之后,自己又冥想了一会,豁然开朗了!
第一步:声明3个结构指针,head存放链表首地址,p1存放新申请的内存地址,p2存放最后一个节点的地址
第二步:申请一块内存(malloc(sizeof(结构体))),将地址赋给结构体指针变量p1和p2,p1=p2=(struct student *)malloc(LEN) ;
第三步:如果是第一个节点,head=p1,head->next=NULL;
否则,p2->next=p1,p1中是新申请内存的地址,此处我把它叫做挂链
p2=p1将p1中的地址赋给p2,数据挂到链表中去
p1=(struct student *)malloc(LEN) ;再次新申请内存,地址赋给p1
第四步:如果输入结束,p2->next=NULL;否则继续第三步
以上就是实现一个动态链表的基本步骤,这是我个人的理解,希望对新手有帮助!