声明:本文为原创
#####请转贴时保留以下内容######
作者:
GTT
本文档归属
http://oldtown.cublog.cn/.转载请注明出处!
请提出宝贵意见Mail:mtloveft@hotmail.com
Linux Version:
2.6.33
提示
:本文是介绍一些linux kernel 基础数据结构系列
!
普通的hash表遍历时,退出条件就是节点元素等于NULL。
有没有其他退出条件呢?那就是hlist_nulls_head
有没有其他退出条件呢?那就是hlist_nulls_head
定义如下
|
初始化过程如下,必须给定一个nulls其实就是按照顺序给定的int值
最后的安排如上图,nulls不是随便给的值
最后的安排如上图,nulls不是随便给的值
|
运算后first指针的值为1, 3, 5, 7, 9...
判断一个hlist_nulls_node是否是一个nulls就是下面的方法
|
遍历的方法是
|
退出条件就是pos是否是一个nulls,
hlist_nulls_for_each_entry的参数说明如下
tpos就是我们hlist_nulls_node所属的结构体的指针
pos 是hlist_nulls_node结构指针
head是根据hash值得到的hash表里的一项hlist_nulls_head
member 是hlist_nulls_node在所属结构体里的定义名称
这个hash表和上一篇的区别就在于退出条件。
hlist_nulls_for_each_entry的参数说明如下
tpos就是我们hlist_nulls_node所属的结构体的指针
pos 是hlist_nulls_node结构指针
head是根据hash值得到的hash表里的一项hlist_nulls_head
member 是hlist_nulls_node在所属结构体里的定义名称
这个hash表和上一篇的区别就在于退出条件。
hlist_nulls_node的构成图如下
![](http://blog.chinaunix.net/photo/114767_100831184228.jpg)