请教97年高程下午第六题?s[i]=null设置为空后,就断链了,后面如何还有判断(4)s[i]!=null

zhyong12 2003-08-20 08:50:51
某系统由 n 个部件组成,这些部件被物理地分成若干个分离的部件组。同一组内的两件部件 i 和 j,它们或直接相连,或间接相连(部件 i 和部件 j 间接相连是指在这两件部件之间有一个部件相连序列,其中部件 i 和 j 分别与这相连序列中的某个部件直接相连)。系统的 n 个部件被统一编号为 0,1,…,n-1。本程序输入所有直接相连的部件号对,分别求出系统各分离部件组中的部件号并输出。

程序根据输入的直接相连的两件部件号,建立 n 个链表,其中第 i 个链表的首指针为 s[i],其结点是与部件 i 直接相连的所有部件号。

程序依次处理各链表。在处理 s[i] 链表中,用 top 工作链表重新构造 s[i] 链表,使 s[i] 链表对应系统中的一个部件组,其中结点按部件号从小到大连结。
[程序]
.......
.......
for(i = 0;i < n; i++) /* 顺序处理各链表 */

for(top = s[i],____(1)____;top != NULL;)





//s[i]=null设置为空后,就断链了,后面如何还有判断(4)s[i]!=null
//同理s[j]也是空?????????????????????????????????






/* 在重新生成的第 i 链表中寻找当前结点的插入点 */

for(y = s[i]; ____(4)____; x = y,y = y->link);

if(y != NULL && y->data == q->data)

free(q);/*因重新生成的第i链表已有当前结点,当前结点删除* /

...全文
75 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
chinalin0 2003-08-20
  • 打赏
  • 举报
回复
没有断呀,因为S[i]以保存在top中,当以后发觉S[i]=NULL时,说明些链以处理
pebble 2003-08-20
  • 打赏
  • 举报
回复
s[i]=NULL
执行后,s[i]这个指针确实已经和它原来指向的链表断开了
可是在这条语句之前执行top=s[i]
top指向它原来的链表呢
执行s[i]=NULL,并不会使得top也被修改啊
coolcjw 2003-08-20
  • 打赏
  • 举报
回复
这样的指针交换没有错呀
!~!

2,947

社区成员

发帖
与我相关
我的任务
社区描述
就计算机等级考试、软件初、中、高级不同级别资格考试相关话题交流经验,共享资源。
c1认证c4javac4前端 技术论坛(原bbs)
社区管理员
  • 软件水平考试社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧