中程线性表的一个问题,请教!!

哟西哟西地 2003-09-11 01:06:27
设线性循环链表中结点的结构为(data,line),且rear是指向非空的带表头结点的线性循环链表尾结点的指针,若想删除链表第一个结点,则应执行下列哪一个操作!?()
A:s=rear;rear=rear->link;free(s);
B:rear=rear->link;free(rear);
C:rear=rear->link->link;free(rear);
D:s=rear->link->link;rear->link->link=s->link;free(s);

这是中程辅导书上一道试题,请教!
...全文
67 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
哟西哟西地 2003-09-11
  • 打赏
  • 举报
回复

非常感谢!!!!!!!!!!!!!!!!
lijian2003 2003-09-11
  • 打赏
  • 举报
回复
d
wangmin_yjitx 2003-09-11
  • 打赏
  • 举报
回复
D;原理楼上的已说了,不再多说了。
proware 2003-09-11
  • 打赏
  • 举报
回复
D;
rear->link为头接点,rear->link->link为第一个接点,将其复给S;
将第一个接点删除,先要保证其后面的接点不断,用rear->link->link=s->link实现;
这时第一个接点就可以删除了free(s);
Zeroins 2003-09-11
  • 打赏
  • 举报
回复
“rear是指向非空的带表头结点的线性循环链表尾结点的指针”

首先,如无表头结点,并 head 指向第一个结点:
s = head;
head = head->link;
free(s);

其次,如有表头结点,并 head 指向表头结点,那麽:
s = head->link;
head->link = s->link;
free(s);

然后,因为 rear 指向‘循环’链表的‘尾’结点,所以:
s = rear->link->link;
rear->link->link = s->link;
free(s);
(D)
VerOne 2003-09-11
  • 打赏
  • 举报
回复
D

2,947

社区成员

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

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