Redis设计与实现----底层数据结构之链表

1.链表的基础知识

1.1头指针

ListNode *L = new ListNode; //生成新节点为头节点,头指针L指向头节点;
L->next = NULL; //头节点的指针域为空

头指针指向头节点!!!

1.2头节点

可以直接参考《数据结构》那本书,这里不做赘述!

2.Redis中的链表

2.1链表节点(ListNode)

首先是链表节点因为redis数据库中可能存在双向的迭代,所以我们使用双向链表

typedef struct ListNode{
	// 前置节点
	struct ListNode* prev;
	// 后置节点
	struct ListNode* next;
	// 数据部分
	void *data;
}ListNode;

同理双向的迭代需要以O(1)的时间知道链表的头节点和尾节点和长度等信息,所以我们在这里设置一个List结构用来管理ListNode

2.2链表管理(List)

List1.0版本

/********    List1.0     *********/
typedef struct List{
	ListNode *head; //头节点
	ListNode *tail; //尾节点
	unsigned long len ; // 链表长度
}List;

在这里插入图片描述
List与ListNode之间关系

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值