关于c语言链表的一个问题h->next=p1,p2->next=p1是什么意思,又有什么作用struct stu { int num; float score; struct stu *next; } *h,*p1,*p2; p1=(struct stu *)malloc(sizeof(struct stu)); h=p1; p1=(struct stu *)malloc(sizeof(struct stu)
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/22 16:32:22
关于c语言链表的一个问题h->next=p1,p2->next=p1是什么意思,又有什么作用struct stu { int num; float score; struct stu *next; } *h,*p1,*p2; p1=(struct stu *)malloc(sizeof(struct stu)); h=p1; p1=(struct stu *)malloc(sizeof(struct stu)
关于c语言链表的一个问题h->next=p1,p2->next=p1是什么意思,又有什么作用
struct stu { int num; float score; struct stu *next; } *h,*p1,*p2; p1=(struct stu *)malloc(sizeof(struct stu)); h=p1; p1=(struct stu *)malloc(sizeof(struct stu)); h.next=p1; p2=p1; p1=(struct stu *)malloc(sizeof(struct stu)); p2.next=p1; p2=p1;
如果我在h=p1处加上p2=p1那么h.next=p1是否可以不要,而改为p2.next=p1呢
关于c语言链表的一个问题h->next=p1,p2->next=p1是什么意思,又有什么作用struct stu { int num; float score; struct stu *next; } *h,*p1,*p2; p1=(struct stu *)malloc(sizeof(struct stu)); h=p1; p1=(struct stu *)malloc(sizeof(struct stu)
struct stu //定义结点结构体,单链表
\x09{
\x09\x09int num;
\x09\x09float score;
\x09\x09struct stu *next;
\x09} *h,*p1,*p2;
\x09\x09/*malloc动态分配一个节点空间A,返回该空间的指针给p1 */
\x09p1=(struct stu *)malloc(sizeof(struct stu));
\x09\x09/*p1赋给h(通常意味头指针),可以理解为使用h表示空间A*/
\x09h=p1;
\x09\x09/*malloc动态分配一个节点空间B,返回该空间的指针给p1*/
\x09p1=(struct stu *)malloc(sizeof(struct stu));
\x09\x09/*h节点的next成员指向空间B,就把A-B链起来了,可以理解为使用p1表示空间B*/
\x09h.next=p1;
\x09\x09/*p1赋给p2,此时用p2表示空间B了*/
\x09p2=p1;
\x09\x09/*malloc动态分配一个节点空间C,返回该空间的指针给p1*/
\x09p1=(struct stu *)malloc(sizeof(struct stu));
\x09\x09/*p2(空间B)的next指向空间p1,把B-C链起来*/
\x09p2.next=p1;
\x09\x09/*又用p2表示空间C,此时链表的结构是A-B-C了.*/
\x09p2=p1;
\x09\x09/*综上所述,这个程序建立了一个链表,h指向头结点,p2指向尾结点,每次新增结点时,都把新分配的结点空间赋给p1,再把p1链到p2上去*/