首页 > 系统服务 > 详细

linux内核链表的实现

时间:2020-03-15 23:14:42      阅读:101      评论:0      收藏:0      [点我收藏+]

Linux内核链表的实现:

本质:带头节点的双向循环链表,且头节点为表中成员

头节点的next指针指向首节点

头节点的pre指针指向尾节点

技术分享图片

 

 

 linux内核链表的结点定义:

struct list_head {
    struct list_head *next, *prev;
};

问题:数据放在哪里?

使用链表的一个最主要的目的就是使用链表的这种特性存放数据,现在数据都没有了,还怎么玩?别急,看我给你慢慢道来

形式1:

使用struct list_head自定义链表结点:

struct Node
{
  struct list_head head;
   Type1 value1;
   Type2 value2;
   //...  
};

这个数据结构有个特点:head这个链表是该结构体的首元素,意味着该链表与该结构体的首地址是相同的。

Linux内核链表的创建及初始化

struct Node
{
    struct list_head head;
    int value;
    
};
int main()
{
    struct Node l = {0};
    struct list_head* list = (struct list_head*)&l;
    
    INIT_LIST_HEAD(list);
return 0; }

 

linux内核链表的实现

原文:https://www.cnblogs.com/-glb/p/12500961.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!