Redis笔记 -- 链表和链表节点的API函数(三)
| 函数 | 作用 | 时间复杂度 |
| listSetDupMethod | 将给定的函数设置为链表的节点值复制函数 |
复制函数可以通过链表的dup |
| listGetDupMethod | 返回链表当前正在使用的节点值复制函数 | O(1) |
| listSetFreeMethod | 将给定的函数设置为链表的节点值释放函数 |
释放函数可以通过链表的free |
| listGetFree | 返回链表当前正在使用的节点值释放函数 |
O(1) |
| listSetMatchMethod | 将给定的函数设置为链表的节点值对比函数 | 对比函数可以通过链表的match 属性直接获得,O(1) |
| listGetMatchMethod | 返回链表当前正在使用的节点值对比函数 | O(1) |
| listLength | 返回链表的长度(包含了多少个节点) |
链表长度可以通过链表的len |
| listFirst | 返回链表的表头节点 |
表头节点可以通过链表的head |
| listLast | 返回链表的表尾节点 |
表尾节点可以通过链表的tail |
| listPrevNode | 返回给定节点的前置节点 |
前置节点可以通过节点的prev |
| listNextNode | 返回给定节点的后置节点 |
后置节点可以通过节点的next |
| 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函数(三)的更多相关文章
- C语言:根据形参c中指定的英文字母,按顺序打印出若干后继相邻字母,-主函数中放入一个带头节点的链表结构中,h指向链表的头节点。fun函数找出学生的最高分-使用插入排序法对字符串中的字符进行升序排序。-从文件中找到指定学号的学生数据,读入次学生数据,
//根据形参c中指定的英文字母,按顺序打印出若干后继相邻字母,输出字母的大小与形参c一致,数量由形参d指定.例如:输入c为Y,d为4,则输出ZABC. #include <stdio.h> ...
- 笔试算法题(19):判断两条单向链表的公共节点 & 字符集删除函数
出题:给定两个单向链表的头结点,判断其是否有公共节点并确定第一个公共节点的索引: 分析: 由于是单向链表,所以每个节点有且仅有一个后续节点,所以只可能是Y型交叉(每条链表中的某个节点同时指向一个公共节 ...
- 【DM642学习笔记五】FVID驱动模型 API函数
1.FVID_control 作用:发送一个控制命令到mini_driver 语法: status = FVID_control(fvidChan, cmd, args); 参数: FVID_Hand ...
- Redis学习之底层链表源码分析
Redis底层链表的源码分析: 一.链表结点的结构(单个结点): // listNode 双端链表节点 typedef struct listNode { // 前置节点 struct listNod ...
- redis 笔记01 简单动态字符串、链表、字典、跳跃表、整数集合、压缩列表
文中内容摘自<redis设计与实现> 简单动态字符串 1. Redis只会使用C字符串作为字面量,在大多数情况下,Redis使用SDS(Simple Dynamic String,简单动态 ...
- 【Redis笔记(四)】 Redis数据结构 - list链表
原创作品,转载请标明:http://blog.csdn.net/Xiejingfa/article/details/50573605 经过前面的介绍,我们学习了Redis中string字符串.hash ...
- 图解Redis之数据结构篇——链表
前言 Redis链表为双向无环链表! 图解Redis之数据结构篇--简单动态字符串SDS提到Redis使用了简单动态字符串,链表,字典(散列表),跳跃表,整数集合,压缩列表这些数据结构 ...
- C语言实现单链表,并完成链表常用API函数
C语言实现单链表,并完成链表常用API函数: 1.链表增.删.改.查. 2.打印链表.反转打印.打印环形链表. 3.链表排序.链表冒泡排序.链表快速排序. 4.求链表节点个数(普通方法.递归方法). ...
- Redis 底层数据结构之链表
文章参考:<Redis设计与实现>黄建宏 链表 链表提供了高效的节点重排能力,以及可以顺序访问,也可以通过增删节点灵活调整链表长度,Redis中的列表.发布订阅.慢查询.监视器等功能均用到 ...
随机推荐
- Docker bridge探索
作者:ellen.sun链接:http://blog.daocloud.io/docker-bridge/著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 早期的二层网络中,bri ...
- listview的pushBackDefaultItem中的item属性被修改问题
time:2015/05/04 1. 描述 在cocostudio中有两个控件,一个listview,另外一个是隐藏的imageview,其中后者作为listview的元素.每次使用的时候把Image ...
- python windows 远程执行bat
本机环境:Win 10,python3.6 远程机器: Win7.WinServer 因python在windows上执行需要用到 wmi 模块. wmi 模块下载地址:https://sourcef ...
- Azure之旅
http://www.microsoft.com/web/downloads/platform.aspx http://www.microsoft.com/en-us/download/details ...
- 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 ...
- 在python中逐行读取大文件
在我们日常工作中,难免会有处理日志文件的时候,当文件小的时候,基本不用当心什么,直接用file.read()或readlines()就可以了,但是如果是将一个10G大小的日志文件读取,即文件大于内存的 ...
- Mysql group by top N的问题
在日常工作中,经常要查询分组的前几名.oracle中可以通过row_num来支持查询,mysql暂时不支持row_num.那么如何来完成这个需求呢? 例如: 表中的数据: +--------+---- ...
- css实现文字裁切效果
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- UVA-1152-4 Values whose Sum is 0---中途相遇法
题目链接: https://cn.vjudge.net/problem/UVA-1152 题目大意: 给出4个数组,每个数组有n个数,问有多少种方案在每个数组中选一个数,使得四个数相加为0. n &l ...
- tcp的三次握手:通信的本质:通信通知与信息交换
tcp的三次握手:通信的本质:通信通知与信息交换