欧美日韩亚-欧美日韩亚州在线-欧美日韩亚洲-欧美日韩亚洲第一区-欧美日韩亚洲二区在线-欧美日韩亚洲高清精品

金喜正规买球

紅黑樹算法探索筆記

轉(zhuǎn)帖|行業(yè)資訊|編輯:郝浩|2016-08-24 13:57:20.000|閱讀 218 次

概述:本文總結(jié)了數(shù)據(jù)結(jié)構(gòu)中紅黑樹算法的基礎(chǔ)知識(shí),方便大家對(duì)基礎(chǔ)算法的理解和認(rèn)識(shí)。

# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>

最近花了些時(shí)間重拾數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)知識(shí),先嘗試了紅黑樹,花了大半個(gè)月的時(shí)間研究其原理和實(shí)現(xiàn),下面是學(xué)習(xí)到的知識(shí)和一些筆記的分享。望各位多多指教。本次代碼的實(shí)現(xiàn)請(qǐng)點(diǎn)擊:

紅黑樹基礎(chǔ)知識(shí)

定義

紅黑樹是帶有 color 屬性的二叉搜索樹,color 的值為紅色或黑色,因此叫做紅黑樹。

對(duì)紅黑樹的每個(gè)結(jié)點(diǎn)的結(jié)構(gòu)體定義如下:

struct RBNode {
     int color;
     void *key;
     void *value;
     struct RBNode *left;
     struct RBNode *right;
     struct RBNode *parent;
};

設(shè)根結(jié)點(diǎn)的 parent 指針指向 NULL,新結(jié)點(diǎn)的左右孩子 left 和 right 指向 NULL。葉子結(jié)點(diǎn)是 NULL。

定義判斷紅黑樹顏色的宏為

#define ISRED(x) ((x) != NULL && (x)->color == RED)

因此,葉子結(jié)點(diǎn) NULL 的顏色為非紅色,在紅黑樹中,它就是黑色,包括黑色的葉子結(jié)點(diǎn)。

黑高的定義,從某個(gè)結(jié)點(diǎn) x 觸發(fā)(不含該結(jié)點(diǎn))到達(dá)一個(gè)葉結(jié)點(diǎn)的任意一條簡單路徑上的黑色結(jié)點(diǎn)個(gè)數(shù)稱為該結(jié)點(diǎn)的黑高(black-height),記作 bh(x)。

紅黑樹的性質(zhì)

  1. 每個(gè)節(jié)點(diǎn)不是紅色就是黑色;
  2. 根節(jié)點(diǎn)是黑色;
  3. 每個(gè)葉子節(jié)點(diǎn)是黑色;
  4. 如果節(jié)點(diǎn)是紅色,那么它的兩個(gè)孩子節(jié)點(diǎn)都是黑色的;
  5. 對(duì)每個(gè)節(jié)點(diǎn)來說,從節(jié)點(diǎn)到葉子節(jié)點(diǎn)的路徑包含相同數(shù)目的黑色節(jié)點(diǎn)。

下面是一個(gè)紅黑樹的例子

red-black-tree-demo

紅黑樹的旋轉(zhuǎn)

旋轉(zhuǎn)操作在樹的數(shù)據(jù)結(jié)構(gòu)里面很經(jīng)常出現(xiàn),比如 AVL 樹,紅黑樹等等。很多人都了解旋轉(zhuǎn)的操作是怎么進(jìn)行的(HOW),在網(wǎng)上能找到很多資料描述旋轉(zhuǎn)的步驟,但是卻沒有人告訴我為什么要進(jìn)行旋轉(zhuǎn)(WHY)?為什么要這樣旋轉(zhuǎn)?通過與朋友交流,對(duì)于紅黑樹來說,之所以要旋轉(zhuǎn)是因?yàn)樽笥易訕涞母叨炔黄胶猓醋笞訕浔扔易訕涓呋蛘哂易訕浔茸笞訕涓?。那么,以左旋為例,通過左旋轉(zhuǎn),就可以將左子樹的黑高 +1,同時(shí)右子樹的黑高 -1,從而恢復(fù)左右子樹黑高平衡。

rotate-demo

以右旋為例,α 和 β 為 x 的左右孩子,γ 為 y 的右孩子,因?yàn)?y 的左子樹比右子樹高度多一,因此以 y 為根的子樹左右高度不平衡,那么以 y-x 為軸左旋使其左右高度平衡,左旋之后 y 和 β 同時(shí)成為 x 的右孩子,然而因?yàn)橐D(zhuǎn)的是 x 和 y 結(jié)點(diǎn),因此就讓 β 成為 y 的左孩子即可。

旋轉(zhuǎn)的算法復(fù)雜度:從圖示可知,旋轉(zhuǎn)的操作只是做了修改指針的操作,因此算法復(fù)雜度是 O(1)。

紅黑樹的算法復(fù)雜度分析

紅黑樹的所有操作的算法復(fù)雜度都是 O(lgn)。這是因?yàn)榧t黑樹的最大高度是 2lg(n+1)。

證明如下:

設(shè)每個(gè)路徑的黑色節(jié)點(diǎn)的數(shù)量為 bh(x)`,要證明紅黑樹的最大高度是 2lg(n+1),首先證明任何子樹包含 2^bh(x) - 1 個(gè)內(nèi)部節(jié)點(diǎn)。

下面使用數(shù)學(xué)歸納法證明。

當(dāng) bh(x) 等于 0 時(shí),即有 0 個(gè)節(jié)點(diǎn),那么子樹包含 2^0 - 1 = 0 個(gè)內(nèi)部節(jié)點(diǎn),得證。

對(duì)于其他節(jié)點(diǎn),其黑高為 bh(x) 或 bh(x) - 1,當(dāng) x 是紅節(jié)點(diǎn)時(shí),黑高為 bh(x),否則,為 bh(x) - 1。對(duì)于下一個(gè)節(jié)點(diǎn),因?yàn)槊總€(gè)孩子節(jié)點(diǎn)都比父節(jié)點(diǎn)的高度低,因此歸納假設(shè)每個(gè)子節(jié)點(diǎn)至少有 2^bh(x)-1 - 1 個(gè)內(nèi)部節(jié)點(diǎn),因此,以 x 為根的子樹至少有 2^(bh(x)-1) - 1 + 2^(bh(x)-1) - 1 = 2^bh(x) - 1個(gè)內(nèi)部節(jié)點(diǎn)。

設(shè) h 是樹高,根據(jù)性質(zhì) 4 可知道,每一條路徑至少有一半的節(jié)點(diǎn)是黑的,因此 bh(x) - 1 = h/2。

那么紅黑樹節(jié)點(diǎn)個(gè)數(shù)就為 n >= 2^h/2 - 1。

可得 n + 1 >= 2^h/2。兩邊取對(duì)數(shù)得:

    log(n+1) >= h/2

=>  2log(n+1) >= h

=>  h <= 2log(n+1)

由上面的證明可得,紅黑樹的高度最大值是 2log(n+1),因此紅黑樹查找的復(fù)雜度為 O(lgn)。對(duì)于紅黑樹的插入和刪除操作,算法復(fù)雜度也是 O(lgn),因此紅黑樹的所有操作都是 O(lgn)`的復(fù)雜度。

紅黑樹的插入操作分析

紅黑樹的插入操作,先找到要新節(jié)點(diǎn)插入的位置,將節(jié)點(diǎn)賦予紅色,然后插入新節(jié)點(diǎn)。最后做紅黑樹性質(zhì)的修復(fù)。

新節(jié)點(diǎn)賦予紅色的原因

因?yàn)椴迦氩僮髦豢赡軙?huì)違反性質(zhì) 2、4、5,對(duì)于性質(zhì) 2,只需要直接將根節(jié)點(diǎn)變黑即可;那么需要處理的就有性質(zhì) 4 和性質(zhì) 5,如果插入的是黑節(jié)點(diǎn),那么就會(huì)影響新節(jié)點(diǎn)所在子樹的黑高,這樣一來就會(huì)違反性質(zhì) 5,如果新節(jié)點(diǎn)是紅色,那么新插入的節(jié)點(diǎn)就不會(huì)違反性質(zhì) 5,只需要處理違反性質(zhì) 2 或性質(zhì) 4 的情況。即根節(jié)點(diǎn)為紅色或者存在兩個(gè)連續(xù)的紅節(jié)點(diǎn)。簡而言之,就是減少修復(fù)紅黑性質(zhì)被破壞的情況。

插入算法偽代碼

RB-INSERT(T, node)
    walk = T.root
    prev = NULL
    while (walk != NULL)
        prev = walk
        if (node.key < walk.key)
            walk = walk.left
        else walk = walk.right
    node.parent = walk
    if (walk == NULL)
        T.root = node
    else if (node.key < walk.key)
        walk.left = node
    else walk.right = node
    RB-INSERT-FIXUP(T, node)

插入算法流程圖

red-black-tree-insert

插入的修復(fù)

插入之后,如果新結(jié)點(diǎn)(node)的父結(jié)點(diǎn)(parent)或者根節(jié)點(diǎn)(root)是紅色,那么就會(huì)違反了紅黑樹的性質(zhì) 4 或性質(zhì) 2。對(duì)于后者,只需要直接將 root 變黑即可。

而前者,違反了性質(zhì) 4 的,即紅黑樹出現(xiàn)了連續(xù)兩個(gè)紅結(jié)點(diǎn)的情況。修復(fù)的變化還要看父結(jié)點(diǎn)是祖父結(jié)點(diǎn)的左孩子還是右孩子,左右兩種情況是對(duì)稱的,此處看父結(jié)點(diǎn)是祖父結(jié)點(diǎn)的左孩子的情況。要恢復(fù)紅黑樹的性質(zhì),那么就需要將 parent 的其中一個(gè)變黑,這樣的話,該結(jié)點(diǎn)所在的子樹的黑高 +1,這樣就會(huì)破壞了性質(zhì) 5,違背了初衷。因此需要將 parent->parent(grandparent)的另一個(gè)結(jié)點(diǎn)(uncle 結(jié)點(diǎn))的黑高也 +1 來維持紅黑樹的性質(zhì)。

如果 uncle 是紅色,那么直接將 uncle 變?yōu)楹谏?,同時(shí) parent 也變黑。但是這樣一來,以 grandparent 為根所在的子樹的黑高就 +1,因此將 grandparent 變紅使其黑高減一,然后將 node 指向 grandparent,讓修復(fù)結(jié)點(diǎn)上升兩個(gè) level,直到遇到根結(jié)點(diǎn)為止。

如果 uncle 是黑色,那么就不能將 uncle 變黑了。那么只能將紅節(jié)點(diǎn)上升給祖父節(jié)點(diǎn),即將祖父結(jié)點(diǎn)變紅,然后將父結(jié)點(diǎn)變黑,這樣一來,以父結(jié)點(diǎn)為根的子樹的左右子樹就不平衡了,此時(shí)左子樹比右子樹的黑高多 1,那么就需要通過將祖父結(jié)點(diǎn)右旋以調(diào)整左右平衡。

插入修復(fù)算法的偽代碼

RB-INSERT-FIXUP(T, node)
    while IS_RED(node)
        parent = node->parent
        if !IS_RED(parent) break
        grandparent = parent->parent
        if parent == grandparent.left
            uncle = grandparent.right
            if IS_RED(uncle)
                parent.color = BLACK
                uncle.color = BLACK
                grandparent.color = RED
                node = grandparent
            elseif node == parent.right
                LEFT_ROTATE(T, parent)
                swap(node, parent)
            else
                parent.color = BLACK
                grandparent.color = RED
                RIGHT_ROTATE(T, grandparent)
        else
            same as then clause with "right" and "left" exchanged
    
    T.root.color = BLACK

插入修復(fù)算法的流程圖

red-black-insert-fixup

插入的算法復(fù)雜度分析

插入的步驟主要有兩步

a. 找到新結(jié)點(diǎn)的插入位置 b. 進(jìn)行插入修復(fù)。而插入修復(fù)包括旋轉(zhuǎn)和使修復(fù)結(jié)點(diǎn)上升。

對(duì)于 a,從上面可知,查找的算法復(fù)雜度是 O(lgn)。

對(duì)于 b,插入修復(fù)中,每一次修復(fù)結(jié)點(diǎn)上升 2 個(gè) level,直到遇到根結(jié)點(diǎn),走過的路徑最大值是樹的高度,算法復(fù)雜度是 O(lgn);由旋轉(zhuǎn)的描述可得其算法復(fù)雜度是 O(1),因此插入修復(fù)的算法復(fù)雜度是 O(lgn)。

綜上所述,插入的算法復(fù)雜度 O(INSERT) = O(lgn) + O(lgn) = O(lgn)。

紅黑樹的刪除操作分析

紅黑樹的刪除操作,先找到要?jiǎng)h除的結(jié)點(diǎn),然后找到要?jiǎng)h除結(jié)點(diǎn)的后繼,用其后繼替換要?jiǎng)h除的結(jié)點(diǎn)的位置,最后再做紅黑樹性質(zhì)的修復(fù)。

紅黑樹的刪除操作比插入操作更復(fù)雜一些。

要?jiǎng)h除一個(gè)結(jié)點(diǎn)(node),首先要找到該結(jié)點(diǎn)所在的位置,接著,判斷 node 的子樹情況。

  • 如果 node 只有一個(gè)子樹,那么將其后繼(successor)替換掉 node 即可;
  • 如果 node 有兩個(gè)子樹,那么就找到 node 的 successor 替換掉 node;
  • 如果 successor 是 node 的右孩子,那么直接將 successor 替換掉 node 即可,但是需要將 successor 的顏色變?yōu)?node 的顏色;
  • 如果 successor 不是 node 的右孩子,而因?yàn)?node 的后繼是沒有左孩子的(這個(gè)可以查看相關(guān)證明),所以刪除掉 node 的后繼 successor 之后,需要將 successor 的右孩子 successor.right 補(bǔ)上 successor 的位置。

刪除過程中需要保存 successor 的顏色 color,因?yàn)閯h除操作可能會(huì)導(dǎo)致紅黑樹的性質(zhì)被破壞,而刪除操作刪除的是 successor。因此,每一次改變 successor 的時(shí)候,都要更新 color。

刪除時(shí)用到的 TRANSPLANT 操作

TRANSPLANT(T, u, v) 是移植結(jié)點(diǎn)的操作,此函數(shù)的功能是使結(jié)點(diǎn) v 替換結(jié)點(diǎn) u 的位置。在刪除操作中用來將后繼結(jié)點(diǎn)替換到要?jiǎng)h除結(jié)點(diǎn)的位置。

刪除結(jié)點(diǎn)的后繼結(jié)點(diǎn)沒有左孩子證明

用 x 表示有非空左右孩子的結(jié)點(diǎn)。在樹的中序遍歷中,在 x 的左子樹的結(jié)點(diǎn)在 x 的前面,在 x 的右子樹的結(jié)點(diǎn)都在 x 的后面。因此,x 的前驅(qū)在其左子數(shù),后繼在其右子樹。

假設(shè) s 是 x 的后繼。那么 s 不能有左子樹,因?yàn)樵谥行虮闅v中,s 的左子樹會(huì)在 x 和 s 的中間。(在 x 的后面是因?yàn)槠湓?x 的右子樹中,在 s 的前面是因?yàn)槠湓?x 的左子樹中。)在中序遍歷中,與前面的假設(shè)一樣,如果任何結(jié)點(diǎn)在 x 和 s 之間,那么該結(jié)點(diǎn)就不是 x 的后繼。

刪除算法偽代碼

RB-DELETE(T, node)
    color = node.color
    walk_node = node
    if IS_NULL(node.left)
        need_fixup_node = node.right
        transplant(T, node, need_fixup_node)
    elseif IS_NULL(node.right)
        need_fixup_node = node.left
        transplant(T, node, need_fixup_node)
    else
        walk_node = minimum(node.right)
        color = walk_node.color
        need_fixup_node = walk_node.right
        if walk_node.parent != node
            transplant(T, walk_node, walk_node.right)
            walk_node.right = node.right
            walk_node.right.parent = walk_node
        transplant(T, node, walk_node)
        walk_node.left = node.left
        walk_node.left.parent = walk_node
        walk_node.color = node.color
    
    if color == BLACK
        RB-DELETE-FIXUP(T, need_fixup_node)

注:筆者參考的是算法導(dǎo)論的偽代碼,但是在實(shí)現(xiàn)的時(shí)候,因?yàn)橛?NULL 表示空結(jié)點(diǎn),如果需要修復(fù)的結(jié)點(diǎn) need_fixup_node為空時(shí)無法拿到其父結(jié)點(diǎn),因此保存了其父結(jié)點(diǎn) need_fixup_node_parent 及其所在方向 direction,為刪除修復(fù)時(shí)訪問其父結(jié)點(diǎn)及其方向時(shí)做調(diào)整。

刪除操作流程圖

red-black-delete

刪除的修復(fù)操作分析

刪除過程中需要保存 successor 的顏色 color,因?yàn)閯h除操作可能會(huì)導(dǎo)致紅黑樹的性質(zhì)被破壞,而刪除操作刪除的是 successor。因此,每一次改變 successor 的時(shí)候,都要更新 color。

會(huì)導(dǎo)致紅黑樹性質(zhì)被破壞的情況就是 successor 的顏色是黑色,當(dāng) successor 的顏色是紅色的時(shí)候,不會(huì)破壞紅黑樹性質(zhì),理由如下:

  • 性質(zhì) 1,刪除的是紅結(jié)點(diǎn),不會(huì)改變其他結(jié)點(diǎn)顏色,因此不會(huì)破壞。
  • 性質(zhì) 2,如果刪除的是紅結(jié)點(diǎn),那么該結(jié)點(diǎn)不可能是根結(jié)點(diǎn),因此根結(jié)點(diǎn)的性質(zhì)不會(huì)被破壞。
  • 性質(zhì) 3,葉子結(jié)點(diǎn)的顏色保持不變。
  • 性質(zhì) 4,刪除的是紅結(jié)點(diǎn),因?yàn)樵瓉淼臉涫羌t黑樹,所以不可能出現(xiàn)連續(xù)兩個(gè)結(jié)點(diǎn)為紅色的情況。因?yàn)閯h除是 successor 只是替換 node 的位置,但是顏色被改為 node 的顏色。另外,如果 successor 不是node 的右孩子,那么就需要先將 successor 的右孩子 successor->right 替換掉 successor,如果 successor 是紅色,那么 successor->right 肯定是黑色,因此也不會(huì)造成兩個(gè)連續(xù)紅結(jié)點(diǎn)的情況。性質(zhì) 4 不被破壞。
  • 性質(zhì) 5,刪除的是紅結(jié)點(diǎn),不會(huì)影響黑高,因此性質(zhì) 5 不被破壞。

如果刪除的是黑結(jié)點(diǎn),可能破壞的性質(zhì)是 2、4、5。理由及恢復(fù)方法如下:

  • 如果 node 是黑,其孩子是紅,且 node 是 root,那么就會(huì)違反性質(zhì) 2;(修復(fù)此性質(zhì)只需要將 root 直接變黑即可)
  • 如果刪除后 successor 和 successor->right 都是紅,那么會(huì)違反性質(zhì) 4;(直接將 successor->right 變黑就可以恢復(fù)性質(zhì))
  • 如果黑結(jié)點(diǎn)被刪除,會(huì)導(dǎo)致路徑上的黑結(jié)點(diǎn) -1,違反性質(zhì) 5。

那么剩下性質(zhì) 5 較難恢復(fù),不妨假設(shè) successor->right 有一層額外黑色,那么性質(zhì) 5 就得以維持,而這樣做就會(huì)破壞了性質(zhì) 1。因?yàn)榇藭r(shí) new_successor 就為 double black(BB)或 red-black(RB)。那么就需要修復(fù)new_successor 的顏色,將其“額外黑”上移,使其紅黑樹性質(zhì)完整恢復(fù)。

注意:該假設(shè)只是加在 new_successor 的結(jié)點(diǎn)上,而不是該結(jié)點(diǎn)的顏色屬性。

如果是 R-B 情況,那么只需要將 new_successor 直接變黑,那么“額外黑”就上移到 new_successor 了,修復(fù)結(jié)束。

如果是 BB 情況,就需要將多余的一層“額外黑”繼續(xù)上移。此處還要看 new_successor 是原父結(jié)點(diǎn)的左孩子還是右孩子,這里設(shè)其為左孩子,左右孩子的情況是對(duì)稱的。

如果直接將額外黑上移給父結(jié)點(diǎn),那么以 new_successor 的父結(jié)點(diǎn)為根的子樹就會(huì)失去平衡,因?yàn)樽笞訕涞暮诟?-1 了。因此需要根據(jù) new_successor 的兄弟結(jié)點(diǎn) brother 的顏色來考慮調(diào)整。

如果 brother 是紅色,那么 brother 的兩個(gè)孩子和 parent 都是黑色,此時(shí)額外黑就無法上移給父結(jié)點(diǎn)了,那么就需要做一些操作,將 brother 和 parent 的顏色交換,使得 brother 變黑, parent 變紅,這樣的話,brother 所在的子樹黑高就 +1 了,以 parent 為根做一次左旋恢復(fù)黑高平衡。旋轉(zhuǎn)之后,parent 是紅色的,且 brother 的其中一個(gè)孩子成為了 parent 的新的右孩子結(jié)點(diǎn),將 brother 重新指向新的兄弟結(jié)點(diǎn),然后接著考慮其他情況。

如果 brother 是黑色,那么就需要通過將 brother 的黑色和 successor 的額外黑組成的一重黑色上移達(dá)到目的,而要上移 brother 的黑色,還需要考慮其孩子結(jié)點(diǎn)的顏色。

如果 brother->right 和 brother->right 都是黑色,那么好辦,直接將黑色上移,即 brother->color = RED。此時(shí)包含額外黑的結(jié)點(diǎn)就變成了 parent。parent 為 RB 或 BB,循環(huán)繼續(xù)。

如果 brother->left->color =RED,brother->right->color = BLACK,將其轉(zhuǎn)為最后一種情況一起考慮。即將 brother->right 變紅。轉(zhuǎn)換步驟為:將 brother->left->color = BLACK; brother->color = RED。這樣的話 brother 的左子樹多了一層黑,右旋 brother,恢復(fù)屬性。然后將 brother 指向現(xiàn)在的 parent 的右結(jié)點(diǎn),那么現(xiàn)在的 brother->right 就是紅色。轉(zhuǎn)為最后一種情況考慮。

如果 brother->right->color = RED。那么就要將 brother->right 變黑,使得 brother 的黑色可以上移而不破壞紅黑樹屬性,上移步驟是使 brother 變成 brother->parent 的顏色,brother->parent 變黑這樣一來,黑色就上移了。然后左旋 parent,這樣 successor 的額外黑就通過左旋加進(jìn)來的黑色抵消了。但是 parent 的右子樹的黑高就 -1 了,而通過剛剛將 brother->right 變黑就彌補(bǔ)了右子樹減去的黑高。現(xiàn)在就不存在額外黑了,結(jié)束修復(fù),然后讓 successor 指向 root,判斷 root 是否為紅色。

刪除修復(fù)算法偽代碼

while node != root && node.color == BLACK)
    parent = node.parent
    if node = parent.left
        brother = parent.right
        if IS_RED(brother)
            brother.color = BLACK
            parent.color = RED
            LEFT_ROTATE(T, parent)
            brother = parent.right
        
        if brother.left.color == BLACK and brother.right.color == BLACK
            brother.color = RED
            node = parent
        elseif brother.right.color = BLACK
            brother.left.color = BLACK
            brother.color = RED
            RIGHT_ROTATE(T, brother)
            brother = parent.right
        else
            brother.color = parent.color
            parent.color = BLACK
            brother.right.color = BLACK
            LEFT_ROTATE(T, parent)
            node = root
    else (same as then clause with “right” and “left” exchanged)
node.color = BLACK

刪除修復(fù)算法的流程圖

red-black-delete-fixup

刪除操作的算法復(fù)雜度分析

刪除的操作主要有查找要?jiǎng)h除的結(jié)點(diǎn),刪除之后的修復(fù)。

修復(fù)紅黑樹性質(zhì)主要是旋轉(zhuǎn)和結(jié)點(diǎn)上移。對(duì)于查找來說,查找的算法復(fù)雜度是O(lgn),旋轉(zhuǎn)的復(fù)雜度是O(1),結(jié)點(diǎn)上移,走過的路徑最大值就是紅黑樹的高,因此上移結(jié)點(diǎn)的復(fù)雜度就是O(lgn)。

綜上所述,刪除算法的復(fù)雜度是 O(DELETE) = O(lgn) + O(1) + O(lgn) = O(lgn)。

資源分享

如果對(duì)部分步驟不理解,可以到這個(gè)網(wǎng)站看看紅黑樹每一步操作的可視化過程:。

本次代碼的實(shí)現(xiàn)請(qǐng)點(diǎn)擊:

總結(jié)

因?yàn)榛A(chǔ)知識(shí)比較薄弱,所以想補(bǔ)一下自己的基礎(chǔ),無奈悟性較低,花了大半個(gè)月時(shí)間才把紅黑樹給理解和實(shí)現(xiàn)出來。中途跟朋友討論了很多次,因此有以上的這些總結(jié)。之前一直不敢去實(shí)現(xiàn)紅黑樹,因?yàn)橛X得自己根本無法理解和實(shí)現(xiàn),內(nèi)心的恐懼一直壓抑著自己,但經(jīng)過幾次掙扎之后,終于鼓起勇氣去研究一番,發(fā)現(xiàn),只要用心去研究,就沒有解決不了的問題。糾結(jié)了很久要不要發(fā)這篇博文,這只是一篇知識(shí)筆記的記錄,并不敢說指導(dǎo)任何人,只想把自己在理解過程中記錄下來的筆記分享出來,給有需要的人。但其實(shí)想想,糾結(jié)個(gè)蛋,讓筆記作為半成品躺在印象筆記里沉睡,還不如花時(shí)間完善好發(fā)布出來,然后有興趣的繼續(xù)探討一下。

如果真的要問我紅黑樹有什么用?為什么要學(xué)它?我真的回答不上,但是我覺得,基礎(chǔ)的東西,多學(xué)一些也無妨。只有學(xué)了,有個(gè)思路在腦海里,以后才能用得上,不然等真正要用才來學(xué)的話,似乎會(huì)浪費(fèi)了很多學(xué)習(xí)成本。

 

本文轉(zhuǎn)載自


標(biāo)簽:

本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn


為你推薦

  • 推薦視頻
  • 推薦活動(dòng)
  • 推薦產(chǎn)品
  • 推薦文章
  • 慧都慧問
掃碼咨詢


添加微信 立即咨詢

電話咨詢

客服熱線
023-68661681

TOP
欧美一区二区在线观看视频 | 欧洲成人精品高清在线观看 | 成人午夜免费视频 | 99青草青草久热精品视频 | 国产欧美日韩国中文字幕高清在线 | 亚洲精品国产福利在线观看 | 91极品国产| 99热这里只有精品免费播放 | 国产精品国产一区二区三区 | 免费poren国| 国内三级自拍小视频在线观看 | 噼里啪啦国语在线观看高清资源 | 香港三级日本三级人妇三99 | 热门电影在线观看 | 日本护士喷水 | 国产乱子伦农村xxxx | 亚洲精品视频在线播放 | 91精品啪国产在线观看 | 午夜福利一区二区电影 | 国产一区二区在线 | 欧美一区二区三区四区国产另类 | 免费v片在线观看 | 午夜dj免费视频在线观看 | 日韩一区二区手机免费观看 | 亚洲国产中文字幕无线乱码 | 欧美亚洲精品久五月亚洲综合婷婷 | 亚洲第一影院中文字幕 | 精品国产一区二区三区四不卡在线 | 多人性战交疯狂派对 | 国产99视频精品免费视频6 | 国产乱子伦一区二区三区视频播放 | 漂亮大学 | 国产美女一区三区在线观看 | 中文字幕精品一区二区三区在线 | 凄辱护士日本电影免费看 | 国产又粗又长又黄又猛 | 欧美特黄一免在线观看 | 野花在线观看免费 | 日韩欧美天堂 | 亚洲精品理论电影在线观看 | 在线午夜看片福利深夜导航 | 国产欧美精品一区 | 日韩欧美国产aⅴ | 视频一二亚洲国产二区 | 欧美精品人爱a欧美精品 | 中日韩无砖码一线二线 | 免费在线观看的网站 | 国产又粗又硬又大爽黄老大爷视 | 日韩专区在线 | 国产福利电影一区二区三区 | 国产欧美精品一区二区三区四 | 亚洲天堂精品在线观看 | 国产免费一区二区三区在线观看 | 免费精品国自产拍在线播放 | 国产一级淫片视频免费看 | 欧美.日韩.日本国产视频 | 视频二区不卡 | 一区二区三区国产精品午夜福利 | 肥老上视频| 99视频精品全部免费在线 | 欧美a级毛欧美1级a大片式放 | 中文字幕亚洲精品 | 成人免费一区二区三区视 | 91美女艹比| 好姑娘视频观看免费完整版 | 欧洲精品不卡1卡2卡三卡 | 亚洲成年看 | 在线观看三缀片免费视频电 | 九热视频 | 国产深夜在线免费观看 | 婷婷影院| 国产乱人视频免费观看 | 国产精选在线观看播放 | 日本精品视频在线 | 日本vs亚洲vs韩国一区三区 | 国产1区2区3区国产精品 | 最近韩国电影hd在线 | 久精品在线观看 | a成在线观看网站 | 成人欧美一区二区三区在线蜜 | 91免费视视频在线观看 | 男人tv天堂精品一区二区 | 成人动漫在线播放一区二区 | 成人年鲁鲁在线观 | 亚洲色妇网站 | 伦理片97影视网 | 欧美a级成人 | 日韩欧美aⅴ综合网站发布 大香伊蕉在人线国产最新75 | 91网视频网站 | 亚洲最大激情中文字幕 | 免费国产自在线拍 | 国产操穴| 国产综合一区二区在线观看 | 第一页欧日韩在线视频 | 亚洲大码熟女在 | 亚洲大片在线观看网址 | 欧美日韩一区不卡 | 日本成a人v网站在线观看 | 最新的国| 亚洲欧美色一区二区三区 | 又大又粗 | 香蕉五月天一综合网 | 在线观看v| 黑人bbcvideos| 欧美日产国产精品 | 亚洲精品国 | 国产亚洲欧美高清在线观看 | 国产福利在线高清导航大全 | 亚洲裸男gv | 草莓国产手机在线视频 | 国产一级视频免费看 | 欧美一区二区三区激情 | 亚洲一区二区三区不卡精品 | 成人91污污污在线观看 | 亚洲视频免费在线播放 | 日韩精品免费高清视频在线 | 中文字幕免费播放 | 欧美日本一区二区三区道 | 国产精品丝袜高跟鞋 | 国产在线视欧美亚综合 | 性夜夜夜夜夜夜爽 | 国产激情免费 | 2025最新电视剧高清热播 | 国产一区二区三区在线综合视频 | 日本三级中文字版电影 | 91网视频网 | 国产亚洲精品午夜高清影院 | 色吊丝a | 国产一区二区三区精彩视频 | 中文日产幕无线码系列 | 4日本国产vps私人大片 | αv在线视频免费观看男人 国产精品1234 | 成a人片在线观看日本 | 亚洲九九九九精品 | 91中文字日产乱幕 | 亚洲中文字幕高清有码在线 | 真实国产乱子伦对白在线 | 欧美精品一区二区 | 亚洲经典一区二区三区爱妃记歌词 | 精品免费视频大 | 一级免费视频在线观看 | 在线观看欧美a级精品视频 电影中文 | 最好免费观看高清视频大全 | 天天色成人免費 | 久热爱精品视频在 | 好男人好资源影视在线 | 亚洲专区日韩专区在线观看 | 91人成亚洲高清在线观看 | 大伊香蕉在线精品视频75 | 超前点播最新电影电视剧 | 欧美日韩国产精品自在线亚洲精品 | 亚洲欧美日韩精品自拍 | 一区二区三区亚洲综合 | 美女爽到尿喷出来 | 国产在线观看高 | 极品一二三视频 | 一级一片免费播放 | 国产精品福利在线观看 | 国产日韩另类视频一区 | 国产精品视频在这里有精品 | 国内成人精品亚洲 | 国产精品青青青高清在线 | 亚洲综合国产一区二区三区 | 青青青草国产线观 | 日韩成全视频观看免费观看高清 | 精品欧美视频第二页在线观看 | 999y| 亚洲黄免费看网站国产福利一区二 | 亚洲日本欧美日韩髙清观看 | 丰满岳乱妇一区 | 国产voyeur精品偷窥222 | 99re5在线精品视频热线 | 国产一区二区在线视频 | 91人人| 日韩亚洲欧洲美三区中文字幕 | 高清一区二区亚洲欧美日韩 | 日本免费在线看aⅴ | 亚欧免费大片在线观看 | 欧美激情视频区一区二区在线观看 | 国产欧美日韩精品视频一区二区 | 欧美性xx| 欧美视频一区二区三区在线观看 | 国产精品成人va在线观看 | 国产日韩欧美911 | 国产午夜福利电影免费在线观看 | 视频试看| 国产精品97 | 视频精品全部国 | 国产午夜免费视频 | 欧美日韩国产综合 | 爽国产片精品 | 日韩精品一区二区三区影院 | 九九热视频在线免费观看 | 欧美日韩中 | 中日韩精品视频在线观看 | 日本一级a大片在线观 | 日本免费国产 | 黑人中文字幕在线 | 午夜福利在线观看国产精品 | 精品亚洲永久免费精品9 | 欧美成在线视频 | 亚洲人成电影网站色 | 亚洲天天网 | 91国语精品自产拍在 | 国产情侣自拍片在线视频 | 国产精品区乱淫片人成人 | 国产精品186在线观看在线播放 | 2025最新免费电影 | 亚洲精品国产77777 | 97高清国语自产拍 | 亚洲自拍高清中文 | 日韩新片在线观看网 | 区三区免费看 | 国产专区欧美专区在线观看 | 国产欧美亚洲三区久在线观看 | 亚洲欧美日韩高清综合678 | 最近免费中文字幕 | 91偷拍精品一 | 尤物99国产成 | 国产精品香港三级国产 | 日本欧美一区二区三区乱码 | 亚洲欧美日韩综合一区 | 国产精品女同一区二区在线 | 欧美推油无尺码 | 中文字幕精品视频第一区第二区 | 性欧美大战 | 亚洲色人妇性爱视频 | 亚洲网站免费观看 | 亚洲韩国日本 | 2025最新上映电影 | 国产又黄又粗又色又刺激视频 | 欧美激情000ⅹxx同性 | 日本高清一 | 亚洲国产日韩欧美视频二区 | 九七电影院| 欧美在线+在线播放 | 国产炮机主播在线观看 | 亚欧乱色国产精品免费视频 | 99re热视频这里只有 | 妺妺窝人体色www聚色窝 | 国产丝袜精品 | 亚洲精品在线观看视频 | 青草国产 | 亚洲91国产精品 | 日本高清色本 | 国产精品亚洲片在 | 国产盗摄电影区9876色 | 在线看推理网站 | 国产毛多水多做爰 | 精品国产一区二区三区香蕉欧美 | 国产精品色一区二区三区 | 亚欧人成| 2025国产精品香蕉在线观看 | 国产黄大片在线观看 | 福利影院 | 亚洲aⅴ无一区二区三区 | 亚洲欧美精品中文字幕 | 日韩专区亚洲精品欧美专区 | 日韩亚洲国产激情在线观看 | 果冻文化传媒官网 | 午夜一区二区在线观看 | 好吊色青青青国产欧美日韩 | 国产精品亚洲视频在线观看 | 国产一级aaaaa免费播放 | 18videosex性欧美黑色 | 国产精品主播一区二区 | 野花日本大全免费观看中文7 | 国产一卡二卡 | 亚洲精品国产福利在线观看 | 免费精品国产自产拍在线观看 | 国产日产高清dvd碟片 | 秒拍视频福利永久国产 | 国产精品系 | 亚洲精品熟女中文字幕 | 亚洲熟女乱综合一区 | 亚洲中文字幕a∨在线 | 欧美在线+在线播放 | 亚洲国内自拍愉拍中文字幕 | 国产精品日韩欧美一区二区三 | 欧美亚洲国产日韩完全在线电影 | 国产成a人片在线观看视频下载 | 欧美自拍偷拍视频 | 大肉大捧一进一出 | 日本aⅴ日| 网友自拍视频一区二区三区 | 99热这里只有精品国产4 | 国产理论在线观看应用 | 亚洲国产精品美女 | 香蕉免费一区二区三区 | 日本不卡一区二区三区 | 亚洲日韩高清在线亚洲专区 | 色琪影院| 日本高清一区二区三区水蜜桃 | 日本女优一区二区三区四区 | 日韩精品一区二区三区中文 | 亚洲第一页中文字幕 | 亚洲男人的天堂在线观看 | 国产精品喷潮在线观看 | 最新国产一区二 | 亚洲欧美日韩不卡在线观看 | 亚洲成国产人片在线观看 | 大胆gogo无| 91秒拍国产福利 | 国产二区三区午夜免费视频 | 午夜影视在线播放免 | 男人的天堂| 黄页免费在线 | 九九在线视频观看只有精品 | 日韩国产欧美在线观 | 国产精品午夜免费观看网站 | 成人国产亚洲欧美一区 | 精品国产又大又长又爽 | 国产在线观看青草视频 | 综合在线观看高清自拍 | 在线观看欧美a级精品视频 电影中文 | 国产午夜亚洲精品不卡电影 | 欧美一区二区三区四区婷婷 | 欧美综合图 | 一区二区国产最新福 | 国产电影免费在线播放 | 亚洲精品美女在线观看 | 热门电影综艺电视剧手机在线观看 | 区三区在线视频 | 午夜成人影院网站18进 | 国产美女自拍视频 | 日韩国产欧 | 91精品成人影院 | 青青精品导航 | 国产高清成免费视频 | 99久热re在线精品视频 | 国产精品丝袜亚洲熟女 | 亚洲成a人片在线观看www流畅 | 精品国产一区二区三区免费 | 热映电影免费在线观 | 国产一级a毛一级a看免费视 | 免费人成视在线观看不卡 | 一区二区日韩国产精品 | 国产欧美日韩在线 | 日韩在线一区二区 | 亚洲一区二区三区四区在线观看 | 黑人性较视频免费视频 | 伦理片午夜视频在线观看免费 | 97高清国语自产拍 | 一色屋精品视频在线观看 | 精品成人一区二区三区电影 | 欧美曰韩免费一级在线 | 韩国三级私人教练 | 一区二区在线视 | 国产日韩高清制服一区 | 免费看片 | 国产成本人三级在线观看网站 | 亚洲精品视频免费 | 欧美大片欧美激情性色a∨在线 | 国产精品视频免费一区二区三区 | 国产精品三区四区 | 国产精品jlzz视频 | 国产日本一线在线观看免费 | 亚洲中文精品乱伦 | 欧美一区二区三区激情爽 | 免费人成网站视频在线观看国内 | 青草在线视频在 | 免费观看最新电影和热门影视剧 | 美女诱惑中文一区二区三区 | 亚洲一区自拍视频在线 | 日本中文字幕在线视频站 | 美丽姑娘在 | 国产亚洲精品a在线观看app | 精品国产yw在线观看 | 亚洲欧美日韩在线一区 | 中文字幕国产一区 | 免费观看又黄又硬又爽的视频 | 综合影院| 免费观看视频 | 人摸人人 | 亚洲国产高清国产拍精品 | 国产伊人 | 国产亚洲精品综合一区 | 国产欧美视频综合二区 | 国产精品乱码一区二区三区 | 国产传媒片免费观看 | 国产黑色丝袜美女在线观看婷 | 亚洲欧美日韩在线精品一区二区 | 精品一区二区三区视频免费 | 日本免码va在线看免费 | 国产精品视频每日更新播放 | 亚洲日韩在线中文字幕综合 | 欧美日韩国产一区三区 | a大片高清在线观看 | 俺去也伦理资源站 | 欧美日韩国产剧情 | 亚州精品一区二区三区手机一 | 国产一区二区三区免费看视频 | 多人伦交性欧美 | 欧亚日韩 | 精品国产一区二区三区不卡 | 国产午夜视 | 国内精品视频一区二区在线观看 | 野花日本完 | 天天综合网网欲色 | 亚洲人成电影网 | 欧美日韩国产另类不卡在线 | 97国产在线视频公开免费 | 91精品专区国产盗摄 | 果冻传媒视频一二在线观看 | 日本日本乱码伦视频在线观看 | 韩国在线观看日韩免費資訊 | 亚洲国产aⅴ精品一区二区女女 | 日韩欧美精品一 | 99热视| 亚洲qvod图片区电影 | 欧美日韩国产一区二区三区欧 | www.亚洲欧美 | 亚洲视频中文字幕 | 乱伦故事 | aaaa级日本片免费视频 | 国产啪视频免费观看视频 | 国产成a人亚洲精品无 | 黄工厂精品视频在线观看 | 国产日产| 精品国产亚洲一区二区三区 | 日韩欧美综合在线另类 | 国产中文字幕在线 | 欧美综合自拍亚洲综合 | 国产精品一区二区三区四区五区 | 99国产在线精品观看二区 | 欧美无砖专区一中文字幕 | 国产亚洲成在线播放va | 亚洲无线码高清在线观看 | 激情国产精品一区二区 | 国产精品亚洲日日摸夜夜添 | 日本xxxwww在线观看 | 亚洲二区中文字幕 | 国产精品影院 | 日韩影院 | 2025最新热播电影电视剧 | 91精品视频在线免费观看 | 成人亚洲性情网站www在线 | 一区视频中文字幕 | 成人午夜影院网站 | 一区二区三区美女图片 | 又大又硬一进一出做视频 | 亚洲欧美人成综合导航 | 欧美日韩一区二区三区在线视频 | 91电影成人天堂 | 欧美一区二区激情视频在线播放 | 免费动漫 | 欧美日韩在线第一页 | 国产91精品对自露脸全集观看 | 日韩电影免费观 | 免费大片aⅴ入口 | 免费啪视频观试看视频 | 十分钟在线观看免费直播 | 日本在线不卡二区三区 | 99国产精品这里只有精品 | 玖玖免费视频在线观看 | 欧美在线观看h片 | h在线观看网站 | 日日日涩涩| 国产福利在线观看永久免费 | 欧美激情综合亚洲一二区 | 国产精品99精品 | 国产一级在线现免费观看 | 中文字幕制服丝袜一区二区三区 | 曰日夜夜| 亚洲高清专区 | 免费看美女部位隐私网站 | 国产99视频精| 手机国产视频福利 | 国产精品成人观看视 | h片在线播放免费 | 在线精品亚洲一 | www网站羞羞视| 在线观看片免 | 亚洲永久免费精品 | 午夜视频在线观 | 国产日产高清欧美一区 | 欧美不卡视频一区发布 | 玩弄牲欲强老熟女 | 亚洲欧美日韩污在线观看 | 午夜视频久 | 高圆圆又紧又大又湿又爽 | 中文字幕高清免费日韩视频在线 | 精品国内自产 | 精品国精 | 乱码一线二线三线新区破解欧 | 国产欧美网址 | 亚洲国产福利一区二区三区 | 午夜级理论片在线播放202 | 亚洲综合日韩精品欧美综合区 | 欧美精品免费在线观看 | 国产老色批视频在线观看应用 | 欧美大片va欧美在线播放 | 天堂va视频一区二区 | 99国产精品免费观看视频 | 中国三级网站 | 国产费视频在线观看 | 亚洲色精品视频 | 黄乱色伦短篇小说 | 国产大片特黄高清视频 | 欧美日韩免费手机在线 | 国产高清在线丝袜精品一区 | 亚洲欧美中文高清在线 | 经典大片电影免费在线观看 | 夫妻之间免费观看完整版 | 欧美日韩国产一区国产二区 | 青青青手机国产在 | 成人欧美视频在线观看 | 国内激情自拍 | 在线人成观看 | 91导航小污女导航天天夜夜爽 | 三区免费高清视 | 成人精品免费视频在线观看 | 成人美女国产精品免费视 | 国产精品国产高清 | 午夜福利一区二区三区在 | 日韩欧美国产一区二区三 | 国色天香在线观看 | 亚洲中文字幕乱码一区 | 2025最新国产在线精品不卡顿 | 娇小xxxxx性| 日韩中文字幕在线免费观看 | 中文在线免费视频 | 国产男女爽爽爽爽爽免费视频 | 最近播放中文版在线观看免费 | 日本高清视频在线观看不卡 | 香蕉成人伊视频在线观看 | 亚洲中文字幕乱碼在线观看 | 97伦理电影在线不卡 | 成小说网站色在线 | 欧美日精品一区二区在线观看 | 久青草久青草视频在线观看 | 欧美日韩国产激情电影 | 国产黄在线观看免费观看网站不卡 | 污污污污污www网站免费观看 | 日韩欧美国产一区免费 | 日韩高清在线有码中文字幕 | 精品一区二区成人 | 开心五月丁香花综合网 | 妖精影院| 91大神大战丝袜美女在线观看 | 日韩精品一区二区国产精品一 | 婷婷综合缴情亚洲狠狠尤物 | 影音先锋女人aa鲁色资 | 国产日本欧美高清免费区 | 国产极品精品免费 | 日本一区二区高清国产 | 国内精品视频一区二区在线观看 | 欧美肥妇bwbwbwbxx | 日韩a级一片 | 国产自在现偷国产精品国产日韩 | 青青草无 | 中文字幕精品乱码亚洲一区 | 国产精品自产在线观看免费 | 国产又污又爽又黄又刺激网站 | 亞洲最大 | 亚洲一区二区三区影院 | 国产亚洲日韩欧美一区二区三区 | 亚洲成a人片在线观看天堂无 | 日韩欧美另类一区二区三区 | 一二三产区区 | 亚洲国产综合另类视频在线观看 | 国产午夜福利精品一区二区三区 | 国产在线 | 中文字幕高清有码在线中字 | 最近中文字幕 | 成人精品免费视频在线观看 | 国产日本欧美 | 精品剧情v国产在线观看 | 中文字幕日产熟女乱码 | 欧美亚洲自拍日韩在线 | 亚洲精品乱拍国产一区二区三区 | 国产精品青草综合久 | 自偷自拍亚洲综合精品 | 特种兵的又 | 91社区免费福利区 | 欧美日本到一区二区三区 | 日韩精品在线播放 | 偷拍自产在线观看蜜桃 | 永久免费91桃色福利 | 国产一区二 | 欧美激情全球免费视频 | 国产免费直播在线观看视频 | 中文字幕欧美中日韩精品 | 真实国产精品视频400部 | 国产精品一卡 | 日韩精品亚洲人成在线观看 | 娇妻羞涩交换 | 国产综合亚洲欧美日韩一区二区 | 日本免费一区二区在线 | 在线看片免费人成视久网 | 亚洲国产精品自在现线让你爽 | 午夜老司机永久免费看片 | 91人人澡人人 | 午夜男女爽爽爽免费播放 | 亚洲成?v人片在线观看翻墙网站 | 最近中文字幕完整版hd | 偷自拍亚洲视频在线观看99 | 国产午夜亚洲精品理论片不卡 | 欧美视频在线观看一区二区 | 亚洲一区二区三区四区 | 国产精品人娇在线内谢 | 视频一区国产 | 欧美v亚洲v综合v国产v | 97国产伦子在线观看 | 亚洲人成亚洲人成在线观看 | 日韩精品一区二区三区中文字幕 | 欧美性色欧美a在线在线播放 | 国产日韩在线看 | 手机看片日韩1024 | 亚洲综合国产一区在线 | 午夜视频精品视在线播放 | 国产色产综合色产在线观看视频 | 337p日本欧洲亚洲 | 天美影视| 免费人成网站在线观看欧美 | 日产学生妹在线观看 | 99欧美午夜一区二区福利 | 国产精选免 | 亚洲精品成人一区二区www | 欧美性爱超长大吊网站 | 欧美亚洲一区二区三区导航 | 亚洲精品三级 | 亚洲一区二区三区四区视频 | 精品午夜福利在线观看 | 欧美videos另类极品 | 国产人妇三级视频在线观看 | 国产精品一区一区 | 亚洲精品自拍视频在线免费 | 欧美精品亚洲 | 欧美日韩国产色综合一二三四 | 欧美一区二区另类在线播放 | 亚洲国产aⅴ成人精品无吗 337p日本人体 | 天堂亚洲日韩专二区 | 国产在线拍揄自揄视频不卡99 | 92国产精品午夜福利免费 | 国产精品高清尿小便嘘嘘主演 | 亚洲欧美日韩一区高清中文字幕 | 日韩视频在线观看 | 亚洲国产在人线播放 | 亚洲aⅴ乱码一区 | 日本一区二区三区在线播放 | 欧美亚洲人成网站在线观看 | 日本sm | 91午夜在线免费观看小视频 | 又大又粗又硬又爽 | 日产乱码区别免费必看 | 全黄性性激高免费视频 | 最新国产乱 | 日韩亚洲精品不卡在线 | 色眯眯国产在线播 | 国产极品翘臀在线观 | 国产一级做a爰片在 | 国产在线国偷精品免费 | 国产精品先锋 | 欧洲美熟女乱又伦 | 欧美日韩人人天天综合小说 | 亚洲天堂 | 国产精品香蕉夜间视频免费播放 | 日韩欧美视频一区二区三区 | 中文字幕日韩一区二区三区不卡 | 欧美成视频无需播放器 | 在线高清mv视频 | 国产又黄又爽在线观看 | 日本精品视频 | 午夜影院在线看 | 国产老人一区v二三区 | 99精品国产高清一区 | 欧美、另类亚洲日本一区二区 | 国产99精品 | 婷婷激情五月天四房 | 日韩欧美性爱精品一区二区 | 美女在线观看永久免费网站 | 国产色系视频免费在线观看 | 亚洲免费视频一区二区 | 欧美、另类亚洲日本一区二区 | 国产精品专区第1页 | 国产精品高清一区二区三区不卡 | 国产真实乱xxxⅹ视频 | 欧美影院一区二区三区 | 日韩在线精品一区二区三区 | 午夜成人影院网站18进 | 国产极品视频一区二区三区 | 亚洲熟女www一区二区三区 | 亚洲精品一二三四区 | 亚洲精品国产乱码在线看天美 | 亚洲欧美精品一区二区三区四区 | 亚洲欧美日韩在线精品一区二区 | 日韩成人精品无v国产 | 国产手机视频在线 | 日韩欧美卡一卡二卡新区 | 精品深夜寂 | 亚色九九九全国免费视频 | 日韩电影免费观看2025 | 真人性囗交69视频 | 国产a在亚洲线播放 | 成人一区视频 | 国产午夜福利精品在线观看不 | 成人精品国产区在线观看 | 精品国产一区二区三区免费 | 亚洲手机在线人成网站 | 偷窥视频| 亚洲精品动漫免费二区 | 神马午夜福利我不卡手机电影 | 两个人的视频www中文 | 日韩精品永久免费播放平台 | 日本xxxx色| 精品国产午夜福利在线观看蜜月 | 日本一区二区三区在线观看 | 中文字幕日韩wm | 二区三区在线观看 | 亚洲国产精品日韩专区a∨ 欧美国产日韩a视频在线不卡 | 日本精品一区二区三区四区 | 搡8o老女人老妇人老熟 | 在线一区二区三区 | 国产视频网站在线 | 成a人片在线观看手机看 | 国产精品日韩欧美一区二区三 | 最新理论片在线观看免费 | 鲁丝片一区二区三区免费 | 精品国产系列 | 专区在线观看 | 男女直接做无 | 国产专区一区 | 琪琪午夜福利免费院 | 免费视频播放a | 国产中文字幕玖玖 | 国产在线拍揄自揄视频不卡99 | 国产农村乱子伦精品视频 | 国产免费直播在线观看视频 | 国产精品国产午夜免费看福利 | 777国产偷窥盗摄精品品在线 | 欧美乱妇高清免费96欧美乱妇高 | 国产精品亚洲专区在线观看 | 最新电影电视剧短剧在线观看 | 国产精品亚洲产品一区二区三区 | 欧美偷窥清纯综合图区 | 国产在线精品观看一区 | 亚洲欧美在线观看片不卡 | 黄页网站大全免费视频网站 | 最新精品亚洲成a人在线观看 | 日本欧美午夜三 | 国语自产偷拍精品视频偷 | 国产精品55夜色66夜色 | 日韩美女永久网址在线观看 | 国自产拍亚洲免费视频 | 92午夜福利国产精品 | 国产欧美一区二区精品每日更新 | 亚洲人成小说网站色在线 | 国产精品自产拍在线观看中文 | 日韩欧美一区一本到国产 | 国产午夜福利在线观看1000集 | 又粗又长又硬又黄免费 | 国语精品91自产拍在 | 无人区大片中文字幕在线 | 国产亚洲精品影视在线产品 | 国产日韩欧美视频在线观看 | 欧美日韩激情播放 | 又大又硬又爽免费视频 | 公交车被两根粗 | 国产精品办公室沙发 | 国产欧美精品区一区 | 免费现黄频在线观看国产 | 日本三级网站网址 | 久操免费在线 | 亚洲欧美综合高清在线 | 羞羞色院91蜜桃在线观看 | 国产二区丝袜在线观看 | 国产精品va在线观看蜜臀 | 国产精品视频一区二区三区 | 日韩视频中文字幕视频一 | 国产天堂亚洲国产碰碰 | 多多影院 | 人与狗性 | 精品亚洲国产 | 91国语精品自产拍在线观看 | 精品国产一级在线观看 | 国产影视 | 国产精品永久在线 | 日韩精品一区二区三区中文在线 | 五月激情丁香婷婷综合网 | 国产一区视频一区欧美 | 99国产视频有精彩视频 | 中文字幕日本 | 免费视频精 | 免费播放婬乱男女婬视频国 | 国产蜜桃精品 | 极品美女在线观看免费直播 | 亚洲人成a在线网站 | 大地资源高清在线视频播放 | 片免费在线 | 不卡视频一区二区三区免费观看 | 久精品国产欧美亚洲色aⅴ大片 | 亚洲一区二区三区不卡精品 | 九九线精品视频在线观看视频 | 免费电视剧大全 | 欧美午夜性刺激在线观看免费 | 99re6在线视频精品免费下载 | 欧美激情xxxx性bbbb | 午夜在线视频91精品 |