| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6017 人关注过本帖
标题:有关链表(输入输出数据,并删除一个数据)的问题,head=p1和p1=head的区别 ...
取消只看楼主 加入收藏
弟大勿勃
Rank: 2
等 级:论坛游民
帖 子:186
专家分:59
注 册:2014-4-17
收藏
得分:0 
回复 19楼 书生牛犊
之前我一直以为p1=head是让head指向p1这个结点,然后就陷入各种误区了!
您说p1=head是把p1初始化,就是说 struct student *p1 只是定义了一个
指向student的结构体指针,这个指针需要一个初值(即指向具体的数据)
于是p1=head表明p1是指向链表(head),并且p1不一定是指向第一个结点,
而是指向链表的全部结点。这样的话才有后面的head=p1->next和p2->next=p1->next
这样的语句功能实现删除功能。(不知道我说的对不对,哪里有误解请指出)

2016-09-13 15:04
弟大勿勃
Rank: 2
等 级:论坛游民
帖 子:186
专家分:59
注 册:2014-4-17
收藏
得分:0 
回复 23楼 linlulu001
这样编译的结果是删除了多个结点,但每次删除后输出的结果都有一个“0 ”和第一次输入的score的值。
2016-09-13 15:12
弟大勿勃
Rank: 2
等 级:论坛游民
帖 子:186
专家分:59
注 册:2014-4-17
收藏
得分:0 
回复 23楼 linlulu001
其实和while(num!=0)的功能一样,但结果还是有毛病
      {

      }
2016-09-13 15:14
弟大勿勃
Rank: 2
等 级:论坛游民
帖 子:186
专家分:59
注 册:2014-4-17
收藏
得分:0 
回复 23楼 linlulu001
还有head->next ,怎么能这样写啊head不是一个头指针吗?难道它也算一个结点?
2016-09-13 15:16
弟大勿勃
Rank: 2
等 级:论坛游民
帖 子:186
专家分:59
注 册:2014-4-17
收藏
得分:0 
回复 28楼 书生牛犊
p1=head中p1和head都是指针。既然是指针,那p1和head都有自己的地址,也有自己存储的数据(也是地址)。
p1=head这句的意思,是把head指针的地址(并非它存储的数据)赋值给p1,p1的地址不变,而它里面的值变成
head的地址了(p1指向了head链表了)。是这个意思吗?
收到的鲜花
  • 书生牛犊2016-09-13 17:27 送鲜花  10朵   附言:是的
2016-09-13 15:56
弟大勿勃
Rank: 2
等 级:论坛游民
帖 子:186
专家分:59
注 册:2014-4-17
收藏
得分:0 
回复 28楼 书生牛犊
奥,我发现我说错了。p1=head是把head存储的值(即头指针指向的的结点的地址)赋值给p1的。
2016-09-13 16:23
弟大勿勃
Rank: 2
等 级:论坛游民
帖 子:186
专家分:59
注 册:2014-4-17
收藏
得分:0 
回复 30楼 linlulu001
恩恩,p的值每次重新赋值就解决了。但我要一次性删除其中几个结点要怎样改del函数呢?
2016-09-13 16:48
弟大勿勃
Rank: 2
等 级:论坛游民
帖 子:186
专家分:59
注 册:2014-4-17
收藏
得分:0 
回复 34楼 linlulu001
就是说当程序执行到删除命令时,我同时输入任一个num,这任一个num都同时被删除。
2016-09-13 20:47
弟大勿勃
Rank: 2
等 级:论坛游民
帖 子:186
专家分:59
注 册:2014-4-17
收藏
得分:0 
回复 33楼 ehszt
谢谢额,这样也能行吧,不过会不会占更多内存呢?
我想问一下如果要同时输入多个num并一次性删除这些num怎么实现呢?
2016-09-13 20:54
快速回复:有关链表(输入输出数据,并删除一个数据)的问题,head=p1和p1=head的 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.045292 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved