Redis筆記 — 連結串列和連結串列節點的API函式(三)

acdante發表於2018-06-30
連結串列和連結串列節點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設計與實現》

相關文章