首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

剔除通用链表中符合条件的节点

2012-11-07 
删除通用链表中符合条件的节点一个通用链表,每个节点存放的信息不同,如有的存放学生信息(学号、成绩、姓名),

删除通用链表中符合条件的节点
一个通用链表,每个节点存放的信息不同,如有的存放学生信息(学号、成绩、姓名),有的存放老师信息(编号、姓名、工资、年资),如何找到某个学号的学生?

[解决办法]

探讨
引用:

用 共享链表吧,将指针域 与数据域 分开存放。

找的话,就遍历 一下链表 不就找到了

我就是用共享链表,指针域和数据域分开。
遍历是可以,不过遍历每次都得从头开始,如果要删除两个学生,就得遍历两次,要是节点很多,这样效率会比较低。而且下次要删除老师信息,函数得重写,有没有什么办法可以遍历一次就可以的?貌似是用回调函数可以实现。。。

[解决办法]
要是这样的话,必须所有数据都使用一个共同的包头吧。
就是有一个字段说明是什么数据。

比较的时候先比较类型,然后再比较具体的数值不就行了?
[解决办法]
探讨
引用:

用 共享链表吧,将指针域 与数据域 分开存放。

找的话,就遍历 一下链表 不就找到了

我就是用共享链表,指针域和数据域分开。
遍历是可以,不过遍历每次都得从头开始,如果要删除两个学生,就得遍历两次,要是节点很多,这样效率会比较低。而且下次要删除老师信息,函数得重写,有没有什么办法可以遍历一次就可以的?貌似是用回调函数可以实现。。。

热点排行