链表和链表节点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. Docker bridge探索

    作者:ellen.sun链接:http://blog.daocloud.io/docker-bridge/著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 早期的二层网络中,bri ...

  2. listview的pushBackDefaultItem中的item属性被修改问题

    time:2015/05/04 1. 描述 在cocostudio中有两个控件,一个listview,另外一个是隐藏的imageview,其中后者作为listview的元素.每次使用的时候把Image ...

  3. python windows 远程执行bat

    本机环境:Win 10,python3.6 远程机器: Win7.WinServer 因python在windows上执行需要用到 wmi 模块. wmi 模块下载地址:https://sourcef ...

  4. Azure之旅

    http://www.microsoft.com/web/downloads/platform.aspx http://www.microsoft.com/en-us/download/details ...

  5. December 08th 2016 Week 50th Thursday

    Life is a test and this world a place of trial. 人生是一场考试,这个世界就是考场. I have not passed the test yet. I ...

  6. 在python中逐行读取大文件

    在我们日常工作中,难免会有处理日志文件的时候,当文件小的时候,基本不用当心什么,直接用file.read()或readlines()就可以了,但是如果是将一个10G大小的日志文件读取,即文件大于内存的 ...

  7. Mysql group by top N的问题

    在日常工作中,经常要查询分组的前几名.oracle中可以通过row_num来支持查询,mysql暂时不支持row_num.那么如何来完成这个需求呢? 例如: 表中的数据: +--------+---- ...

  8. css实现文字裁切效果

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  9. UVA-1152-4 Values whose Sum is 0---中途相遇法

    题目链接: https://cn.vjudge.net/problem/UVA-1152 题目大意: 给出4个数组,每个数组有n个数,问有多少种方案在每个数组中选一个数,使得四个数相加为0. n &l ...

  10. tcp的三次握手:通信的本质:通信通知与信息交换

    tcp的三次握手:通信的本质:通信通知与信息交换