前言在一般的链表中,数据是存储在node节点中的,每次pop出来的数据是以node为单位的。这篇文章,我们对一般的链表进行改进,可以pop任意字节的数据,也就是说,每次pop的数据数据是以任意字节为单位的,可以pop 10byte,也可以500byte,这种方法比较灵活。
原理针对一般的链表,我们做的改进主要是在每个node中加了一个字段pos,用来标记这个node的data的下标。比如说这个node打data数据大小为10,它的pos就为0,这时候就表示这10个字节都可以用。然后可以pop 2个字节,这时候pos就成了2,表示还有8个字节可以用。
实现的话,我们可以定义这样的结构体:
typedef struct node{ int id; //每个link的标识符 int pos; //记录node数据的下标 int size; //记录node数据的总大小 int num; //记录link的node个数,仅头结点使用 char *addr; //数据data struct node *next; //next node} node;
对于具体的原理实现,我们可以用一张图片来清楚地说明一下:
例子下面是一个完整的的代码例子供参考,可以直接运行:
有关蜂蜜检测设备全套有哪些的详解
这份全球TOP17榜单!三星超英特尔居首,AMD联发科激增!再无一家中国大陆公司上榜
水系锌离子电池商业化面临的挑战及解决方法
基于海速芯TM52F1363为主控的颈部按摩仪应用方案
神经元网络中长期细胞外基质分子对于长期记忆是必不可少的
可pop任意字节的队列
光电液位开关在生活应用中的重要性
5G助力融媒体丰富新场景,高通技术带来直播新风口
DVI接口能不能转VGA接口?DVI接口如何转VGA接口?
DIODES调变控制降压变流器AP1534
设计一个PLC控制电动机正停反的控制系统
亚洲占据全球轴承消费的半壁江山,本土企业占据中低端市场
贴片电感双线绕制与单线绕制的优劣势对比
中国电信定制了统一云资源管理系统实现“双能力”统一管理
金融科技的生命线在于大数据安全
基于ADS软件的卫星动中通微带双工器的设计
电磁兼容性(EMC)测试之传导辐射
由原黑莓团队专家参与研发,中兴Axon天机拆解
亚马逊开设第一家“永久在线”Whole Foods超市!
XC7A100T-2FGG676I 芯片详细信息浅谈