内核数据结构:链表,队列,映射二叉树

原创 2012年03月26日 19:30:17

链表代码在<linux/list.h>中声明,其数据结构很简单:

struct list_head {

            struct list_head *next;

            struct list_head *prev;

};

#define LIST_HEAD_INIT(name) { &(name), &(name) }

#define LIST_HEAD(name) \
 struct list_head name = LIST_HEAD_INIT(name)

static inline void INIT_LIST_HEAD(struct list_head *list)
{
 list->next = list;
 list->prev = list;
}
/**
 * container_of - cast a member of a structure out to the containing structure
 * @ptr: the pointer to the member.
 * @type: the type of the container struct this is embedded in.
 * @member: the name of the member within the struct.
 *
 */
#define container_of(ptr, type, member) ({   \
 const typeof( ((type *)0)->member ) *__mptr = (ptr); \
 (type *)( (char *)__mptr - offsetof(type,member) );})

《Linux内核设计与实现》——内部数据结构

一、链表  1、链表
  • Explorer_day
  • Explorer_day
  • 2014年11月10日 15:59
  • 991

【数据结构】数组、链表、栈、队列、二叉树

数组 数组存储的数据在地址空间上是连续的。 方便数据的查找,查找数据的时间复杂度为O(1)。...
  • m0_37854317
  • m0_37854317
  • 2017年04月23日 10:50
  • 828

数据结构(栈,队列,链表,二叉树)

栈栈作为一种数据结构,用途十分广泛。在回调函数等许多场景中都有应用。我们需要了解它的基本用途,那就是先进后出和队列的先进先出正好相反。最近在学习数据结构和算法,于是自己来实现。我特别喜欢C语言的指针,...
  • u013766436
  • u013766436
  • 2016年05月04日 17:03
  • 1938

内核数据结构之映射

映射也称之为关联数组,它是一组唯一键的集合,每个键与特定的值相关。一般支持至少三个操作: Add(key,value) Remove(key) value=Loo...
  • fuyajun01
  • fuyajun01
  • 2012年03月30日 23:56
  • 2182

数组、链表、堆栈、队列和树

数据结构:是指相互之间存在一种或多种特定关系的数据元素的集合。听起来是不是很抽象,简单理解:数据结构就是描述对象间逻辑关系的学科。比如:队列就是一种先进先出的逻辑结构,栈是一种先进后出的逻辑结构,家谱...
  • wei78008023
  • wei78008023
  • 2016年02月25日 10:04
  • 2962

数据结构与实现——数组、矩阵、链表、队列、栈、对象、二叉树和红黑树

1\、栈
  • lhkaikai
  • lhkaikai
  • 2014年04月28日 23:10
  • 2136

面试笔试问题总结(五)—数组、链表、二叉树

作者:disappearedgod 文章出处:http://blog.csdn.net/disappearedgod/article/details/38928535 时间:2014-8-29...
  • disappearedgod
  • disappearedgod
  • 2014年08月30日 13:10
  • 987

linux内核分析--内核中的数据结构之队列(二)

内核中的队列是以字节形式保存数据的,所以获取数据的时候,需要知道数据的大小。 如果从队列中取得数据时指定的大小不对的话,取得数据会不完整或过大。 内核中关于队列定义的头文件位于: include/li...
  • yusiguyuan
  • yusiguyuan
  • 2014年02月25日 11:20
  • 2408

堆,栈,队列,链表,数组

堆和栈从操作系统和数据结构中加以区别: c
  • sinat_15799399
  • sinat_15799399
  • 2014年10月28日 15:31
  • 1130

利用STL中的队列queue对二叉树进行层遍历

STL 中队列的使用(queue) 基本操作:头文件#include push(x) 将x压入队列的末端 pop() 弹出队列的第一个元素(队顶元素),注意此函数并不返回任何值 front()...
  • iamxiaoguizi
  • iamxiaoguizi
  • 2016年04月22日 15:48
  • 1422
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:内核数据结构:链表,队列,映射二叉树
举报原因:
原因补充:

(最多只允许输入30个字)