hlist_head/hlist_node
来源:互联网 发布:怎样进注册表优化电脑 编辑:程序博客网 时间:2024/05/16 08:17
struct hlist_head { struct hlist_node *first;}; struct hlist_node { struct hlist_node *next; struct hlist_node **pprev;};
这是Linux内核代码中常用的哈希链表的结构体定义。第一个结构体存放链表头指针,first指针指向一个由hlist_node节点组成的链表,声明一个struct hlist_head数组,每个元素都指向一条链表,就形成了一个哈希表中的很多哈希桶,类似于图的邻接表。
struct hlist_node结构体中有前驱指针和后继指针,但不同于其他的数据结构,前驱指针并不是指向前一个节点,而是一个二级指针,指向前一个节点的next指针。为什么要这么设计呢,主要是为了可以统一处理节点,不必对第一个节点进行单独处理。如此一来,删除节点的函数就可以这么写:
void hlist_del(struct hlist_node *shn) { struct hlist_node *next = shn->next; struct hlist_node **pprev = shn->pprev; *pprev = next; if (next) { next->pprev = pprev; }}比较简洁,无须区分是否为第一个节点。
0 0
- hlist_head/hlist_node
- hlist_head / hlist_node 设计浅析
- hlist_head hlist_node (哈希链表)
- Linux内核 hlist_head/hlist_node结构解析
- Linux内核 hlist_head/hlist_node结构解析
- Linux内核 hlist_head/hlist_node结构解析
- Linux内核 hlist_head/hlist_node结构解析
- Linux内核 hlist_head/hlist_node结构解析
- Linux内核 hlist_head/hlist_node结构解析
- hlist_head
- struct hlist_node
- 内核数据结构:hlist_head
- 内核数据结构:hlist_head
- 内核数据结构hlist_head
- put struct list_head and struct hlist_head into the application
- hlist_head和list_head区别以及container_of机制 - [linux内核]
- linux的tar命令详情;linux多个文件压缩打包到一个压缩文件
- Python 日期全集
- java list add的弊病
- 关于android 控件的单击双击以及长按的问题
- Retrofit在项目中的实战应用
- hlist_head/hlist_node
- Note For Linux By Jes(16)-软件安装:原始码与 Tarball
- 调用相机,选择图片上传,带预览功能
- qwt坐标准换不准确
- BLE低功耗蓝牙设备开发
- 安卓将一个文件夹中的文件移动到另一个文件夹中
- c++中静态数据成员与常量的初始化
- Activiti之活动(九)
- zzuli OJ 1008: 美元和人民币