当前位置: 技术问答>linux和unix
hlist高分求教:如何迅速定位hlist的尾节点?
来源: 互联网 发布时间:2016-04-14
本文导语: list: 由于是双向链表,可以很方便从头部或尾部对整个链表进行遍历。 hlist: 由于表头没有prev,也没有next,只有一个first,所以只能从表头开始对整个链表进行遍历。 问题: 如果想迅速定位hlist的尾节点,除了遍历...
list:
由于是双向链表,可以很方便从头部或尾部对整个链表进行遍历。
hlist:
由于表头没有prev,也没有next,只有一个first,所以只能从表头开始对整个链表进行遍历。
问题:
如果想迅速定位hlist的尾节点,除了遍历外,有没有更高效的办法?
欢迎大家参与讨论,共同进步!
由于是双向链表,可以很方便从头部或尾部对整个链表进行遍历。
hlist:
由于表头没有prev,也没有next,只有一个first,所以只能从表头开始对整个链表进行遍历。
问题:
如果想迅速定位hlist的尾节点,除了遍历外,有没有更高效的办法?
欢迎大家参与讨论,共同进步!
|
在list中,表头和节点是同一个数据结构,直接用prev没问题;在hlist中,表头没有prev,也没有next,只有一个first。为了能统一地修改表头的first指针,即表头的first指针必须修改指向新插入的节点,hlist就设计了pprev。hlist节点的pprev不再是指向前一个节点的指针,而是指向前一个节点(可能是表头)中的next(对于表头则是first)指针(struct list_head **pprev),从而在表头插入的操作可以通过一致的“*(node->pprev)”访问和修改前节点的next(或first)指针。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。