LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1124|回复: 10

帮忙设几个算法(关于链表)

[复制链接]
发表于 2006-6-18 22:43:38 | 显示全部楼层 |阅读模式
一个链表,有一个指针指向这个链表的一个结点(不是指向链表头结点),请问怎样删除这个结点。
发表于 2006-6-19 10:00:44 | 显示全部楼层
让其前一个接点指向后一个节点 把它删了就可以了
是这个意思么
next
回复 支持 反对

使用道具 举报

发表于 2006-6-19 12:45:12 | 显示全部楼层
Post by muxingren
一个链表,有一个指针指向这个链表的一个结点(不是指向链表头结点),请问怎样删除这个结点。

若是双链表,就按一般的方法
若是单链表,且结点内容不多时,将下一个结点的内容覆盖当前结点,然后删除下个结点,缺点是当前要删除结点为尾结点时,
直接删除后会导致前一个结点的next指向已回收内存
回复 支持 反对

使用道具 举报

发表于 2006-6-19 14:15:58 | 显示全部楼层
Post by theman
若是双链表,就按一般的方法
若是单链表,且结点内容不多时,将下一个结点的内容覆盖当前结点,然后删除下个结点,


删除下个节点,不是又回到删除节点的问题上了吗?跟删除本节点没多大区别啊。
回复 支持 反对

使用道具 举报

发表于 2006-6-19 16:48:52 | 显示全部楼层
从头开始遍历,如果a节点的next为需要删除的节点b,则a->next=b->next, 然后释放b
当然还要考虑一些临界情况
回复 支持 反对

使用道具 举报

发表于 2006-6-19 22:02:44 | 显示全部楼层
Post by fzhyeale
删除下个节点,不是又回到删除节点的问题上了吗?跟删除本节点没多大区别啊。


单链表时,删除当前结点是需要知道前一节点。用theman的方法,相当于知道了前一节点的指针
回复 支持 反对

使用道具 举报

发表于 2006-6-27 16:10:13 | 显示全部楼层
Post by freesoft
单链表时,删除当前结点是需要知道前一节点。用theman的方法,相当于知道了前一节点的指针

明白了,多谢。
回复 支持 反对

使用道具 举报

发表于 2006-7-1 23:30:27 | 显示全部楼层
楼主,你明白了。我们还没明白呢。
回复 支持 反对

使用道具 举报

发表于 2006-7-2 00:26:07 | 显示全部楼层
个人觉得这种问题最好能在纸上稍微画下图,分析起来就很清楚了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-7-2 11:34:34 | 显示全部楼层
我才是搂主,我得重新说一下这道题目,有些人误解了。

这个单连表
1、不知道头节点指针
2、只知道其中一个节点指针,而且这个节点不是头节点。

如何删除这个节点?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表