链表和链表节点API
函数 作用 时间复杂度
listSetDupMethod 将给定的函数设置为链表的节点值复制函数

复制函数可以通过链表的dup
属性直接获得,O(1)

listGetDupMethod 返回链表当前正在使用的节点值复制函数 O(1)
listSetFreeMethod 将给定的函数设置为链表的节点值释放函数

释放函数可以通过链表的free
属性直接获得,O(1)

listGetFree 返回链表当前正在使用的节点值释放函数

O(1)

listSetMatchMethod 将给定的函数设置为链表的节点值对比函数 对比函数可以通过链表的match
属性直接获得,O(1)
listGetMatchMethod 返回链表当前正在使用的节点值对比函数 O(1)
listLength 返回链表的长度(包含了多少个节点)

链表长度可以通过链表的len
属性直接获得,O(1)

listFirst 返回链表的表头节点

表头节点可以通过链表的head
属性直接获得,O(1)

listLast 返回链表的表尾节点

表尾节点可以通过链表的tail
属性直接获得,O(1)

listPrevNode 返回给定节点的前置节点

前置节点可以通过节点的prev
属性直接获得,O(1)

listNextNode 返回给定节点的后置节点

后置节点可以通过节点的next
属性直接获得,O(1)

listNodeValue 返回给定节点目前正在保存的值 节点值可以通过节点的value属性直接获得,O(1)
listCreate 创建一个不包含任何节点的新链表 O(1)
listAddNodeHead

将一个包含给定值的新节点添加到给定链表
的表头

O(1)
listAddNodeTail

将一个包含给定值的新节点添加到给定链表
的表尾

O(1)
listInsertNode

将一个包含给定值的新节点添加到给定节点
的之前或者之后

O(1)
listSearchKey 查找并返回链表中包含给定值的节点 O(N),N 为链表长度
listIndex 返回链表在给定索引上的节点 O(N),N 为链表长度
listDelNode 从链表中删除给定节点 O(N),N 为链表长度
listRotate

将链表的表尾节点弹出,然后将被弹出的节
点插入到链表的表头,成为新的表头节点

O(1)
listDup 复制一个给定链表的副本 O(N),N 为链表长度
listRelease 释放给定链表,以及链表中的所有节点 O(N),N 为链表长度
           ------ Power by 《Redis设计与实现》

Redis笔记 -- 链表和链表节点的API函数(三)的更多相关文章

  1. C语言:根据形参c中指定的英文字母,按顺序打印出若干后继相邻字母,-主函数中放入一个带头节点的链表结构中,h指向链表的头节点。fun函数找出学生的最高分-使用插入排序法对字符串中的字符进行升序排序。-从文件中找到指定学号的学生数据,读入次学生数据,

    //根据形参c中指定的英文字母,按顺序打印出若干后继相邻字母,输出字母的大小与形参c一致,数量由形参d指定.例如:输入c为Y,d为4,则输出ZABC. #include <stdio.h> ...

  2. 笔试算法题(19):判断两条单向链表的公共节点 & 字符集删除函数

    出题:给定两个单向链表的头结点,判断其是否有公共节点并确定第一个公共节点的索引: 分析: 由于是单向链表,所以每个节点有且仅有一个后续节点,所以只可能是Y型交叉(每条链表中的某个节点同时指向一个公共节 ...

  3. 【DM642学习笔记五】FVID驱动模型 API函数

    1.FVID_control 作用:发送一个控制命令到mini_driver 语法: status = FVID_control(fvidChan, cmd, args); 参数: FVID_Hand ...

  4. Redis学习之底层链表源码分析

    Redis底层链表的源码分析: 一.链表结点的结构(单个结点): // listNode 双端链表节点 typedef struct listNode { // 前置节点 struct listNod ...

  5. redis 笔记01 简单动态字符串、链表、字典、跳跃表、整数集合、压缩列表

    文中内容摘自<redis设计与实现> 简单动态字符串 1. Redis只会使用C字符串作为字面量,在大多数情况下,Redis使用SDS(Simple Dynamic String,简单动态 ...

  6. 【Redis笔记(四)】 Redis数据结构 - list链表

    原创作品,转载请标明:http://blog.csdn.net/Xiejingfa/article/details/50573605 经过前面的介绍,我们学习了Redis中string字符串.hash ...

  7. 图解Redis之数据结构篇——链表

    前言     Redis链表为双向无环链表!     图解Redis之数据结构篇--简单动态字符串SDS提到Redis使用了简单动态字符串,链表,字典(散列表),跳跃表,整数集合,压缩列表这些数据结构 ...

  8. C语言实现单链表,并完成链表常用API函数

    C语言实现单链表,并完成链表常用API函数: 1.链表增.删.改.查. 2.打印链表.反转打印.打印环形链表. 3.链表排序.链表冒泡排序.链表快速排序. 4.求链表节点个数(普通方法.递归方法). ...

  9. Redis 底层数据结构之链表

    文章参考:<Redis设计与实现>黄建宏 链表 链表提供了高效的节点重排能力,以及可以顺序访问,也可以通过增删节点灵活调整链表长度,Redis中的列表.发布订阅.慢查询.监视器等功能均用到 ...

随机推荐

  1. java编写银行管理 。ATM管理

    package Demo; import java.util.Date; import java.util.Scanner; //date是数据库中的一个用法,初始化后输出的是操作时的时间 publi ...

  2. Python startswith()函数 与 endswith函数

    函数:startswith() 作用:判断字符串是否以指定字符或子字符串开头一.函数说明语法:string.startswith(str, beg=0,end=len(string))       或 ...

  3. 【转】ISMS方针、手册、程序文件模板

    <ISMS方针.手册.程序文件模板> 1 信息安全管理手册 2 信息安全适用性声明 3 信息安全管理体系程序文件 3.01文件管理程序 3.02记录管理程序 3.03纠正措施管理程序 3. ...

  4. 乘风破浪:LeetCode真题_001_TwoSum

    乘风破浪:LeetCode真题_001_TwoSum 一.前言 沉寂了很长时间,也悟出了很多的道理,写作是一种业余的爱好,是一种自己以后学习的工具,是对自己过往的经验积累的佐证,是检验自己理解深入度的 ...

  5. C#3.0新特性:隐式类型、扩展方法、自动实现属性,对象/集合初始值设定、匿名类型、Lambda,Linq,表达式树、可选参数与命名参数

    一.隐式类型var 从 Visual C# 3.0 开始,在方法范围中声明的变量可以具有隐式类型var.隐式类型可以替代任何类型,编译器自动推断类型. 1.var类型的局部变量必须赋予初始值,包括匿名 ...

  6. codeforces 12D Ball

    codeforces 12D Ball 这道题有两种做法 一种用树状数组/线段树维护区间最值,一种用map维护折线,昨天我刚遇见了一道类似的用STL维护折线的题目: 392D Three Arrays ...

  7. metasploit渗透测试笔记(内网渗透篇)

    x01 reverse the shell File 通常做法是使用msfpayload生成一个backdoor.exe然后上传到目标机器执行.本地监听即可获得meterpreter shell. r ...

  8. python30 excel修改模块xlutils

    xlrd只读,xlwt只写,xlutils模块则将读写功能结合起来.https://pypi.org/project/xlutils/ 修改excel通过xlutils的copy函数将<clas ...

  9. 【[SDOI2017]序列计数】

    感觉自己的复杂度感人 大概是\(O(p*\pi(m)+p^3logn)\) 还是能过去的 我们看到这么大的数据范围还是应该先想一想暴力怎么写 显然我们可以直接暴力\(dp\) 设\(dp[i][j]\ ...

  10. python3 安装win32api

    Python3 中先安装pip install pywin32 但是在调用时任然说找不到该模块,于是查找资料后得出需要使用python -m pip install pypiwin32.