链表——内核链表

一、内核链表

1、定义

是一个有头双向循环链表。相比与之前的单向链表与双向链表,它不再将存储的数据放在节点中;而将节点放在要存储的数据中,作为数据成员存在

2、系统中宏

在系统中有两个宏可以处理内核链表。

①offsetof:获取结构体成员到首地址的偏移量;

②contianer-of:通过偏移量获取结构体首地址。

而我们要研究时不应用这两个宏,因此要得到结构体首地址,就得将节点放在结构体开头作为第一个成员存在。<结构体第一个成员首地址即为结构体的首地址>

3、函数指针与指针函数

(1)函数指针:指向指针函数的函数指针。

(函数写法:函数 返回值 函数名(形参表))

函数指针写法:返回值(*函数指针名)(形参表)

eg:

作为参数传递的函数指针为回调函数

调用函数指针形式:函数指针(实参)

eg:

(2)指针函数:返回值为指针性的函数。

返回值要求:①不能指向一个局部变量空间;

        ②可以为:malloc(堆)、全局变量、静态变量;

        ③返回值需要判空,避免出现断错。

4、内核链表实现创建、增删改查(简写非循环)

(1)结构体、函数接口声明

(2)链表结构体中包含节点、以及其他数据

(3)不同链表结构体整体创建、遍历方式回调函数、查找方式回调函数

(4)具体操作接口

(5)主函数中调用

二、3种链表区别

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值