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

金喜正规买球

紅黑樹算法探索筆記

轉(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
在线观看福 | 精品国产自在现线免费观看 | 一区二区三区国产 | 亚洲免费在线 | 豆国产96在线 | 视频在线观看不卡 | 92午夜福利国产精品 | 日本免费一区二区三区最新 | 国产日韩成人精品视频 | 青青草原网站 | 91福利国产在线观一区二区 | 日本三级手机在线播放线观看 | 亚洲日韩精品综合一区二区 | 无人在线视频高清免费观看 | 自在自线视频香蕉 | 勃起又长又黑又粗毛又多 | 色综合伊人色综合网站 | 国产精品亚洲给色区 | 成人永久免费高清 | 亚洲a日本一区二区 | 91美女片黄在线观看 | 欧美激情一区二区三区高清视频 | 成人永久免费视频网站 | 天美传媒果冻传媒国产日本 | 性生生活 | 欧美有色 | 最新高清电影免费在线观看下载 | 在线播放国产精品三级 | 免费一区二区三区视频 | 婷婷开心五月四房播播人 | 亚洲亚洲人成网站在线观看 | 国产欧美精品一区二区三区 | 国产欧美亚 | 欧美午夜成年片在线观看 | 亚洲精品在线中文字幕视频 | 生活片欧美在线 | 国产精品亚洲一区 | 综合色区在线观看 | 亚洲中文字幕人成乱在线 | 中日韩精品一区二区三区成人 | 在线视频一区二 | 日本二区在线中文字幕 | 国产一区二区在线不卡 | 加勒比一本大道香蕉大在线 | 欧美三级韩国三级日本三斤 | 欧洲精品色在线观 | 公交车被两根粗 | 91日韩高清在线观看播放 | 曰日夜夜 | 午夜福利电影影院 | 欧美日韩国产综合一区精 | 又色又爽又黄刺激在线观看 | 91国语精品自产拍在线观看 | 玩弄老太婆的屁股眼 | 视频首页| 亚洲一区在线综合 | 日韩综羞羞视频免费网站欧美 | 日韩亚洲欧美一区二区三区 | 国产精品天天看特色大片不卡 | 亚洲一区二区国产日韩欧美 | 电影在线免费高清中文 | 亚洲国产一区二区在线免费 | 在线欧美精| 真实国产普通话对白乱子子伦视频 | 亚洲国产午夜 | 亚洲欧美日韩一区中文字幕 | 一区二区区别是什么 | 国产精品爱的在线线免费观看 | 国产一级特黄aa大片在线观看 | 2025精品国夜夜天天拍拍 | 欧美精品免费一区二区三区在线 | 亚洲成a人片在线观看天堂无 | 国产精品中文 | 欧美在线伊人 | 99sss高清在线视频网 | 国产精品亚洲а∨天堂2025 | 国产在线精品一区二区高清 | 亚洲一区在线视频 | 亚洲一区国产一区日韩一区 | 国产午夜亚洲精品不卡免下载 | 日韩一区二区三区在线 | 亚洲一区中文字幕 | 精品日韩嗷嗷视频在线观看 | 亚洲а∨天堂2025在线网站 | 综合网国产国产人 | 乱码一二区在线亚洲 | 精品成人大胸美女视频在线播放 | 国产精品亲子乱子伦xxxx | 日韩电影免费观看2025 | 亚洲一区在线视频 | 国产精品免费看 | 不卡日韩中文字幕在线观看 | 草草浮力影院 | 久章草在线 | 97国产在线公开免费观看 | 国产精品免费一级在线观看 | 经典三级欧美 | 中文字幕影片免费在线观看 | 色色色欧美 | 欧美日韩免费高清一区二区 | 在线观看日韩欧美一区二区 | 免费国产小视频在线观看 | 韩国三级hd中文字幕不卡偷看 | 日韩欧美综合在线二区三区 | 国产亚洲精品第一综合另类 | 日本乱理伦片在线观看中文字幕 | 精品人伦一区二区三区蜜 | 一区二区三区四区国产免费 | 色哟哟www视频在线观看高清 | 天天a3极品a3私服 | 午夜国产一区二区三区在线观看 | 国产91精品露脸国语对白 | 欧美在线一区视频 | 国产萌白酱喷水在线播放尤物 | 成·人午夜在线观看 | 欧美激情亚洲一区中文字幕 | 婷婷中文视频在线 | 青青草国| 国产盗摄偷窥在线观看 | 熟女露脸一区二区三区 | 琪琪午夜福利免费院 | 日久精品不卡一区 | 国产女人成人精品视频 | 国产高清在线精品一区在线 | 神马影院手机在线观看 | 高清影视电视 | 欧美交a欧美精品喷水 | 99re6在线视频精品免费下载 | 欧美ā片在线观看 | 99这里 | 2025最新韩剧| 欧美激情| 中文字幕国产欧美 | 91精品国产丝袜在线拍 | 最近中文字幕免费完整视频1 | 阿v视频国产免在线手机观看 | 亚洲人成影视在线观看 | 日韩专区在线 | 亚洲а∨天堂2025在线网站 | 国产免费私拍一区二区三区 | 日日摸日 | 国产精品亚洲一区二区在线观看 | 国产最新精品盗摄视频 | 日韩精品欧美激情国产一区 | 成人精品免费视频在线观看 | 日本韩国偷拍视频对白不卡高清精 | www国产亚洲精品 | 最美情侣高清视频大全 | 欧美变态口味重另类在线视频 | 女の乳搾りです在线观看 | 欧美激情一区二区三区高清视频 | 欧美三级不卡在线观看 | 国产精品日韩专区第一页 | 91高清在线 | 久爱成疾在线视频播放 | 91技师按摩洗浴在线观看 | 伊伊人成亚洲综合人网香 | 亚洲高清国产品国语在线观看 | 大香伊蕉在人线国产最新75 | 爱我免费视频观看在线www | 亚洲国产精品视频免费观看 | 日韩高清免费视频观看 | 自拍亚洲一区欧美另类尤物 | 51精产国品一二三产区区 | 爽又丰满 | 爽了在线视频 | 中文字幕一区日韩高清 | 影院日韩欧美一区二区三区 | 国产一区欧美一区二区 | 欧美日韩国产精品酒 | 国产精品自拍91 | 日本国产一区二区三区在线观看 | 星光影院 | 中文字幕乱码亚洲无线三区 | 亚洲精品视频一区二区 | 成人国产综| 亚洲精品国产拍精品 | 日韩欧美一区一本到国产 | 一级直接观看 | 日韩国产综合在线 | 国产精品亚洲视频在线观看 | 成年女人免费毛 | 日韩精品欧美一区喷 | 国产精品色一区二区三区 | 欧美三级极品视频在线观看 | aa中文字幕在线观看 | 欧美性bbbbbxxxxx | 国产在线欧美日韩精品一区 | 国产精品va欧美精品 | 视频一区二区亚洲欧美 | 欧美.成人.综合在线 | 亚洲欧美综合另类 | 亚洲一区二区三区在线观看 | 特种兵的又 | 国产福利自产拍在线观看 | 国产福利观看 | ⅴa在线观看 | 国内精品视频在线中文字幕 | 91.cn国产大片 | 日本黄页免费大片在线观看 | 日本中文字幕精 | 伊人影视在线观看日韩 | 欧美交换乱理伦 | 国产女主播精品大秀系列 | 俺去也伦理资源站 | 国产欧美精品区一 | 国内20| 99爱精品视频 | 欧美日韩免费手机在线 | 日韩在线一区二区 | 大胸视频在线观看国产 | 永久免费不卡在线 | 国产福利爱福利微拍视频 | 国产亚洲欧美另类一区 | 欧美中文日韩在线观看 | 国产偷窥女洗浴在线观看亚洲 | 日韩精品一区二区三线 | 宅男色影视亚洲人在线 | 国产亚洲午夜高清国产拍精品 | 亚洲最大激情中 | 亚洲欧美日韩人成在线播放 | 青草青草久热精品视频在线播放 | 国产精品太长太粗太 | 日韩欧美在线综合网高清 | a成在线观看网站 | 欧美日韩国产中文精品字幕 | 国产一区自拍欧美 | 日本免费一区二区三区最新 | 欧美88888在线观看国产 | 欧美高清国产一区二区三区 | 欧美69视频在线观看 | 日本一区二区三区免费在线观看 | 搡8o老女人老妇人老熟 | 在线午夜看片福利深夜导航 | 真实国产精品视频400部 | 亚洲高清不卡在线观看 | 国产亚洲精品a在线观看app | 国产免费不卡v片在线观看 日本一区视频在线播放 | 7799综合天天看 | 午夜视频精品视在线播放 | 国产午夜视频在线 | 日本欧美中文字幕福利一区 | 欧美私人午夜影院 | 国产一区二区在 | 亚洲综合电影小说图片区 | 中文字幕亚洲精品 | 真人二十三式性视频(动) | 亚洲日本欧美日韩在线观看 | 亚洲.欧美.中文 | 日本高清专区一区二无线 | 精品国产自在现线免费观看 | 成人午夜电影网十八岁勿入 | 日本不卡 | 亚洲欧美日本a∨在线观看 一区发布 | 91大神| 五月天在线观看视频网站 | 国产农村乱子伦精品视频 | 日本中文字幕二区三区 | 天天人守人婷 | 视频一二亚洲国产二区 | 国产高清在线观看一区二区三区 | 国产秘精品入口免费软件 | 好吊视频一区二区三区 | 天天射寡妇射 | 国产菲菲视频在线观看 | 国产精品亚洲二区在线观看 | 在线精品99re网 | 黑人巨大精品欧美一区二区在线 | 日韩在线 | 欧亚一级毛 | 国产乱理伦片在线观看夜 | 又大又硬一进一出做视频 | 在线观看一二三四区 | 午夜激情影 | 国亚洲一厂区二厂区三厂区 | 欧美日韩国产亚洲 | 亚洲国产精品va在线看黑人 | 一级特黄国产免费大片 | 亚洲无线观看国产高 | 成人91污污污在线观看 | 国产精品日产三级在线观看 | 国产ol丝袜高跟在线观看不卡 | 日韩性freexxxx在线观看 | 老子影院午夜伦不卡亚洲 | 国产欧美精品 | 年轻的母亲4韩剧免费中文版 | 亚洲日本aⅴ片在线观看香蕉 | 日韩v亚洲v欧美v精品综合 | 2025年国产福利 | 美女撒尿一区二 | 国产日韩欧美911 | 性爱影院三级国产 | 精品一区二区三区免费视频 | 91精品专区国产盗摄 | 日本三级网站在线观看视频 | 午夜伦理电影网电影午夜伦理 | 五月综合 | 亚洲国产精品成人天堂 | 丫头13第一次真紧 | 水蜜桃成视频人在线看 | 亚洲精品综合 | 日本一区二区电影 | 一级一片免费播放 | 亚洲欧美在线精品一区二区 | 99热在线观看 | 精品国产欧美一区二区三区成人 | 中文字幕日韩欧美一区二区三区 | 国内精品视频在线播放一区 | 色综合激情丁香七月色综合 | 国产在线观看第二十三页 | 妖精视频一区二区免费 | 最新国产精品精品视频 | 天天综合网~永久入口 | 看片国产| 国产欧美日韩精品综合 | 成人免费午夜在线观看 | 插我一区二 | 午夜成人影院 | 亚洲一区二区偷拍第一页 | 高清精品一区二区三区 | 中文字字幕乱码 | 在线第一页 | 国产精品熟女视频一区二区 | 国产初高中生视 | 日韩一级簧片 | 91影视网| 十分钟在线观看免费直播 | 欧美日韩韩高清在线不卡 | 亚洲欧美国产一区二区三区 | 92午夜福利手 | 亚洲国产妇在线观看 | 欧美freesex黑人又粗又大 | 欧美性黑人极品hd另类 | 国产精品视频免费一区二区 | 五月婷婷丁香色 | 亚洲熟女精品一区二区成人 | 欧美日韩国产精品自在自线 | 精品深夜寂 | 乱伦精品亚洲影视 | 精品免费看国产一区二区 | 自拍偷区 | 性感美女网站一区二区三区 | 天天色亚洲 | 国产美女一级做视须爱 | 国产日韩欧美911在线观看 | 国产精品乱码一 | 国产亚洲视频在线观看 | 国产ppp视频 | 在线观看国产日韩欧美 | 97久视频精品视频在线老司机 | 亚洲精品我不卡 | 日韩一区二区三区免费播放 | 亚洲欧美日韩中文字幕二区 | 婷婷综合缴情亚洲狠狠尤物 | 91导航在线国产无弹窗 | 国产l精品国产亚洲区在线观看 | 亚洲国产日韩在线人成电影 | 日本一卡亚洲精品 | 亚洲日韩国产成网在线观看 | 天堂中文在线资源 | 国产免费一级高清淫日本片 | 日本一区免费电影 | 日本一区二区精品免费 | 亚洲狠狠婷| 草草线禁成18年在线视频 | 国语对白精品一区二区在线观看 | 视频在线观看免费网站 | 99在线精品视频在线观看 | 中文字幕不卡 | 天天看片国产精品 | 中国三级网站 | 24小时日本视频在线观看 | 美女视频黄又黄 | 日本三级香港三级人妇99 | 中文字幕在线不卡 | 国产一区视频在线观看免费 | 国产精品人娇在线内谢 | 亚洲成年人免费a级网站 | 国产在线精品拍揄自揄免费 | 最新版本直播app | 欧美人与性动交α欧美精品 | 午夜成人性刺激免费视频在线观看 | 天天做日日 | 亚洲+欧洲+日本+国产 | 国产一级a爱片 | 国产一区二区三区免费在线 | 欧美一区二区三区免费看 | 最新md传| 国产精品成人 | 免费人成在线观看vr网站 | 亚洲精品在线免费观看 | 国产精品亚洲自在线播放页码 | 日韩精品极品视频在线观看免 | 最新日韩欧美不卡一二三 | 日韩欧美大片精品黄 | 亚洲高清精品一区 | 国产高清精品自在线看 | 日韩精品欧美亚洲高清有无 | 色综合激情丁香七月色综合 | 中文字幕va一区二 | 91国内自产 | 亚洲国产精品特色大片观看完整版 | 亚洲码欧美码一区二区三区 | 日本不卡在线免费 | 夜夜精品无 | 最新电影电视剧 | 一品二品国精破解 | 亚洲色精品三区二区一区 | 乱理伦片在线播放 | 精品偷任你爽任你a | 最近中文字幕免费mv视频7 | 亚洲成a人片在线观看www | 羞羞影视| 亚洲性影院在线看 | 日本中文字幕一区二区视频 | 国产99视频精品专区 | 永久免费精品影视网站 | 国产午夜福利精品一 | 亚洲第一页在线视频 | 亚洲v乱码专区国产乱码 | 亚洲的一区二区精品 | 欧美中文日韩在线观看 | 亚洲五月综合缴情婷婷 | 欧美日韩中文亚洲v在线综合 | 热映电影免费在线观 | 欧美一区二区三区播放 | 日韩欧美性爱视频网站翘臀 | 国产人妖的免 | 欧洲精品视频一二三区视频 | 亚洲全网 | bt在线天堂中文最新版 | 亚洲激情在线播放 | 日韩欧美一区二区三区四区 | 亚洲+欧美+日韩+综合aⅴ | 视频在线观看不卡免费 | 伊人成色综合网 | 在线观看免费人成视频网 | 国产免费人成视频在线观看 | 欧美日韩中文在线视频 | 麻花果冻视频大全英文 | 国产一级一级一级国产片 | 欧美亚洲综合成人专区 | 精品国产一区二区三区四不卡在线 | 三年片在线观看免费大全哔哩哔哩 | 亚洲国产日韩欧美视频二区 | 亚洲精品高清中文字幕完整版 | 免费视频精 | 视频一区二区三区免费观看 | 欧美日韩国产一区二区三区欧 | 在线视频欧美 | 天天综合网~永久入口 | 色与欲影视天天影视 | 国产精品99精品一区二区 | 亚洲欧美日韩精品中文乱码 | 激情欧美一区二区三区 | 国产啪精品视频网站 | 免费看美女脱了全身衣服直播 | 中文字幕卡通动漫精品首页 | 欧美有码在线 | 日本一本二本三区免费免费高清 | 人禽伦免费视 | 91精品国产福利尤物 | 中文字幕卡通动漫精品首页 | 69一区二三区好的精华液 | 成人免费大片黄在线播放 | 国产激情综合在线看 | 国自产精品手机在线观看视 | 国产情侣套 | 在线日韩日本国 | 日韩精品一区二区三区在线观看 | 日产无人区一线二线三线最新版 | 欧美日韩不卡中文字幕在线 | 午夜国产一区在线 | 欧美人成网站中文字 | 亚洲一区二区三区高清在线播放 | 国产精品欧美精品aⅴ在线 精品欧美在 | 午夜福利1000集在线观看 | 黑人妖欧美一区 | 国产精品丝袜黑 | 91精品视频免费在线观看 | 国产精品综合一区二区三区 | 巨大乳bbwsex中国 | 成在线人免费视频 | 中文字幕第一页国产 | 国产热女 | 日本汚视频在线观 | 国产盗摄xxxx | 日本成人三级在线播放 | 99精品热爱在线观看视频 | 91精品国产自 | 中文字幕巨大乳在线看 | 亚洲日本va在 | 在线观看国产日韩欧美 | 午夜电影网 | 亚洲精国产一区二区三区 | 国产欧美日韩精品第一区 | 亚洲理伦精 | 成年人免费国产视频 | 99视频在线 | 亚洲欧洲中文字幕 | 欧美在线观看综合 | 亚洲男人| 日本黄页网站免费大全 | 精品人伦一区二区三区蜜桃 | 免费人成网 | 国产精品丝袜黑 | 天天色天天综合网 | 精品97国产免费人成视频 | 精品亚洲国产成v人片传媒 欧美性猛 | 日本免费高清一本视频 | 国产中文亚洲日韩欧美 | 欧美日本在线播放 | 二区三区欧美精品在线观看 | 成人国产精品日韩 | 韩剧排行榜 | 精品视频一区二区三区在线观看 | 国产福利在线观看片 | 国产精品女丝袜白丝袜美腿 | 色一乱一伦一 | 亚洲成a人片在线v | 6080神 | 免费高清欧美亚洲视频 | 日本高清视频在线观看不卡 | 亚欧乱色国产精品免费九库 | 国产人成在线观 | 亚洲日本va在线视频观看 | 91秒拍国产福利 | 免费免费视频片在线观看 | 一级视频亚洲视频在线观看 | 亚洲国产一区二区在线 | 92午夜福利手 | 99re热这里只有精品66 | 午夜在线欧美曰韩精品影 | 欧美日韩aⅴ一区二区三区 日本二区在线中文字幕 | 国产男女爽爽爽免费视频 | 亚洲综合在线成人一区 | 中文字幕欧美在线观看 | 精品高清美女精品国产区 | 国产一级精品在线播 | 热播电视剧在线观 | 美国成人影院 | 麻花传媒在线mv免费观看视频 | 91最新精品视频在线 | 欧美亚洲日本 | 免费视频精品一区 | 欧美精品一区二区 | 91啪在线观看国产在线 | 91热这里只有精品 | 亚洲一本之道高清在线观看 | 国产亚洲精品精品国产亚洲综合 | 我被两个老外抱着高爽翻了 | 免费60分 | 2025最新热门电视排行榜 | 性色生活片在 | 成视频免费国产 | 欧美一区日韩二区在线观看 | a在线亚洲男人的天堂在线 亚洲欧美精品日韩片 | 国产香蕉人在线播放视频网站 | 日本亚洲精品成人 | 日韩精品一区二区三区观看 | 最新国产精品拍自在线播放 | 91?黑料?精品?国产 | 老司机在线网站 | 国产又粗又硬又长又爽 | 二区精品在线播放 | 海量热播电视剧手机电影在线观看 | 清除唯美 | 视频试看| 亚洲一区乱码精品中 | 亚洲欧美另类激情综合区蜜芽 | 日韩高清在线日韩视一区 | 女男羞羞视频网站免费 | 成人永久免费高清 | 亚洲欧洲日韩国产aa色大片 | 国产精品一区二区在线观看 | 免费一级欧美片在线观看欧美 | 国产3级在线观看 | 97干视频 | 91老司机精品福利在线 | 欧美日韩不卡一区二区 | 999任你躁在线精品免费 | 国产va免费不卡看片 | 亚洲第一页在线视频 | 日本欧美午夜三 | 亚洲精品一二三区尤物tv | 视频国产精品丝袜第一页 | 亚洲欧美一区二区三区在线 | 日本.欧美一区二区三区 | 成年免费大片黄在线观看一 | 亚洲一级在线中文字幕 | 亚洲一区二区三区人人 | 亚洲欧美综合高清在线 | 老司机在线网站 | 中文字幕在线永久 | 亚洲欧美一二三 | 亚洲日韩欧美一区二区在线 | 最新色国产精品精品视频 | 亚洲一区国产一区日韩一区 | 日韩一区二区在线免费观看 | 亚洲成ā人v欧美综合天 | 777国产偷窥盗摄精品原味 | 日韩伦理一区二区精品视频 | 欧美亚洲视频 | 羞羞视频网站 | 日韩精品亚洲成本人专区电影 | 中文字幕日本有码视频在线 | 国产欧美日本亚洲精品一4区 | 成人欧美一区二区三区 | 日韩中文字幕 | 欧美日韩不卡中文网 | 国产精品一区二区在线观看免费 | 欧美国产亚洲一区 | 亚洲综合色一区二区三区 | 五月天丁香激情 | 国产国产乱片在线播放 | 乌克兰人和猪兽交xⅹx | 在线亚洲人成电影网站色www | 国产午夜福利在线永久视频 | 青青草97国产精品免费观看 | 亚洲成成 | 碰夜夜澡日日澡 | 7799免费视频天天看 | 国产精品自在拍在线播放大全 | 青青视频免| 亚洲精品国偷拍自产 | 国产精品精华液网站 | 在线播放国产一区 | 成年人看的视频网站 | 国产乱子伦视频大全 | 99热久re这里只有精品小草 | 国产免费一级视频在线观看 | 国产在线国偷精品免费看 | 日本三级一区 | 蜜臀精品国产高清在线观看 | 欧美性video高清精品 | 亚洲日韩aⅴ小电影 | 亚洲精品一区二区三区视频在线观 | 玩弄牲欲强老熟女 | 亚洲日韩国产第一成人 | 91视频app污| 欧美性受xxxx黑人xyx | 一区二区三区精 | 全视频tv| 91精品啪aⅴ在线观看国产 | 国产欧美一区二区高清在线 | 97国产在线视频 | 91精品国产乱码在线观看入 | 色色www | 亚洲免费在线观看 | 操中国美女逼美女 | 国产。亚洲。在线播放 | 亚洲国产日韩一级精品视频网站 | 欧美亚洲日韩国产综合网 | 国产亚洲一区二 | 日本一本二本三区免费 | 中文字幕一区在线观看视频 | 日韩在线 | 亚洲精品国产自在在线观看 | 国产国产人免费人成免费视频 | 久操免费在线 | 肉色超薄丝袜脚交一区二区 | 欧美日韩精品一区二区在线 | 国产免费一级视频在线观看 | 亚洲中文字幕在线精品2025 | 精品国产一区二区三区a | 高清在线播放不卡 | 一区二区三区国产 | 亚洲国产精品尤物yw在线观看 | 国产操片 | 精品国内一区二区三区免费 | 精品一区精品二区 | 国产交换一区二区三区 | 日本玖玖资源在线一区 | 在线一区二区电影 | 九九热这里只有精品在线观看视 | 私人影院午夜在线观看 | 日本一区二区三区在线观看网站 | 青青国产精| 精品一区二区免费视频 | 国产乱之伦露脸对白xxxx | 亚洲视频欧美视频在线视频 | 真实国产乱子伦 | 精品国产综合色在线 | 强奷乱码中文字幕熟无 | 国产伦精品一区二区三区视频网站 | 日本欧美视频在线 | 7777欧美成是| 国产亚洲 | 国产美女爽到喷出水来视频 | 亚洲精品国产摄像头 | 精品无人区| 五月综合激情婷婷六月色窝 | 亚洲精品在线观看视频 | 日韩欧美第一页 | 亚洲卡一卡二卡三乱草莓 | 中文字幕卡通动漫精品首页 | 日韩精品免费一区二区三区高清 | 91精品福利自产拍在线 | 97国语精品自产拍在线观看一 | 免费人成黄页在线观看69 | 欧美日韩免费不卡在线观看 | 亚洲视频一区二区三区四区 | 国产欧美日韩一级 | 亚洲欧洲中文字幕 | 精品一区二区三区高清 | 欧美日韩国产亚 | 国产人在线成 | 91干屁眼视频 | 国产精品盗摄一区二区在线 | 福利第二页精品推荐在线观看 | 欧美在线看片免费观看 | 亚洲国产日韩不卡线欧美 | www.91 | 国产小视频在线观看免费 | 精品一区二区三区国产视频 | 性欧美极品xxxx欧美一 | 丝袜亚洲精品中文字幕二区 | 在线日韩国产 | 亚洲欧洲淘宝天堂日本 | 国产精品自在线 | 91看片婬黄大片91挑色 | 亚洲美精品二区性爱 | 国产污污污十八在线精品观看 | 国产短视频精品区第一页 | 视频免费看 | 欧洲精品视频一二三区视频 | 精品日韩一区二区三区 | 国产高清一区二区视频 | 亚洲精品国产美女在线观看 | 天天夜夜欢性恔免费视频 | 免费人成在线观看网站品爱网 | 疯狂欧美牲乱大交777 | 亚洲欧美中 | 精品大臿蕉视频在线观看 | 亚洲综合色区激情自拍 | 视频在线观看一区 | 欧美日本综合一区二区三区 | 成视频在线播放免费人成 | 亚洲中文字幕在线观看 | 欧美中文字幕人成在线网站 | 91草莓视频在线观看 | 亚洲欧美综合精品成 | 在线精品欧 | 免费a级网站 | 色一情一乱一伦一区二区 | 夜爽8888视频在线观看 | 精品综合国产一区二区三区码码 | 国产精品丝袜亚洲熟女 | 国内成人福利短视频在线 | 2025国产品在线视频不卡不卡 | 国内精品手机在线观看视频 | 1024手机| 国精品日韩欧美一区二区三区 | 制服丝袜亚洲中文综合 | 亚洲一区二区三区四区在线 | 国产一区自拍欧美 | 亚洲区日韩精品中文字暮 | 国产在线视频在线观看 | 在线观看午夜亚洲一区 | 天天综合网网欲色 | 精品一区二区三区免费视频 | 97se亚洲国产综合自在线观看 | 国产亚洲欧 | 精品一精品国产一级 | 韩国中文全部三级伦在线观看中文 | 欧美影视 | 一区二区免费在线观 | 日韩一区二区三区免费播放 | 亚洲伊人久 | 亚洲黄免费看网站 | 女男羞羞视频网站免费 | 国产特黄精品一区二区在线 | 国产免费专区 | 成人性生交大片免费看中文 | 日本性爱视频免费看 | 国产精美视频在线观看 | 韩国在线观看日韩免費資訊 | 国产一区二区在线播放女友 | 国产成a人亚洲精v | 精品国产午夜福利在线观看蜜月 | 成人一区二区三区 | 国产精品99精品一区二区浪潮 | 涩涩www在线观看免费高清 | 国产欧美va欧美va香蕉在 | 亚洲欧美日韩高清一区 | 亚洲国产欧美中文手机在线 | 亚洲va国产日韩欧美精品 | 欧美一区二区三区性视频 | 成人一区专区在 | 国产在线精品91国 | 伊人大相蕉在线看青青 | 三级国产国语三级在线2 | 成年女性特黄午夜视频免费看 | 中文在线资源官网在线 | 人人玩人人添人人澡免费 | 在线国产| 三年片在线 | 妖精视频免费观看 | 日本免费一区二区五区六区 |