本帖最后由 4goodworld 于 2020-3-6 13:03 编辑
其实这个制造过程给人感觉混乱的原因是,因为有了循环看不太清楚,我把循环的代码改成这样,你再琢磨下
- //第一次
- p=(LinkList)malloc(sizeof(LNode));
- printf("请输入第%d个元素的值:",i);
- scanf("%d",&(p->data));
- p->next=NULL;
- q->next=p;
- q=p;
- //第二次
- p=(LinkList)malloc(sizeof(LNode));
- printf("请输入第%d个元素的值:",i);
- scanf("%d",&(p->data));
- p->next=NULL;
- q->next=p;
复制代码
然后,我们按照理解重新构造下,或许你会更方便的理解
-
- q=p;
- p=(LinkList)malloc(sizeof(LNode));
- printf("请输入第%d个元素的值:",i);
- scanf("%d",&(p->data));
- p->next=NULL;
- q->next=p;
复制代码
q=p; //此时的p你把它理解为熊大,q=p,是不是q也是熊大
中间有一段操作 // 制作熊二的过程
q->next=p; //此时的p,你把它理解为熊二,熊大的next为熊二,合不合理?
最后,其实你这个创建链表的过程还差一个创建头部的代码,如果把头部Head加起来,你就看得完整