国产凹凸在线-国产拗女一区二区三区-国产白白视-国产白领-国产白拍-国产白丝jk被疯狂输-国产白丝喷-国产白丝在线

金喜正规买球

紅黑樹算法探索筆記

轉帖|行業資訊|編輯:郝浩|2016-08-24 13:57:20.000|閱讀 218 次

概述:本文總結了數據結構中紅黑樹算法的基礎知識,方便大家對基礎算法的理解和認識。

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

最近花了些時間重拾數據結構的基礎知識,先嘗試了紅黑樹,花了大半個月的時間研究其原理和實現,下面是學習到的知識和一些筆記的分享。望各位多多指教。本次代碼的實現請點擊:

紅黑樹基礎知識

定義

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

對紅黑樹的每個結點的結構體定義如下:

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

設根結點的 parent 指針指向 NULL,新結點的左右孩子 left 和 right 指向 NULL。葉子結點是 NULL。

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

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

因此,葉子結點 NULL 的顏色為非紅色,在紅黑樹中,它就是黑色,包括黑色的葉子結點。

黑高的定義,從某個結點 x 觸發(不含該結點)到達一個葉結點的任意一條簡單路徑上的黑色結點個數稱為該結點的黑高(black-height),記作 bh(x)。

紅黑樹的性質

  1. 每個節點不是紅色就是黑色;
  2. 根節點是黑色;
  3. 每個葉子節點是黑色;
  4. 如果節點是紅色,那么它的兩個孩子節點都是黑色的;
  5. 對每個節點來說,從節點到葉子節點的路徑包含相同數目的黑色節點。

下面是一個紅黑樹的例子

red-black-tree-demo

紅黑樹的旋轉

旋轉操作在樹的數據結構里面很經常出現,比如 AVL 樹,紅黑樹等等。很多人都了解旋轉的操作是怎么進行的(HOW),在網上能找到很多資料描述旋轉的步驟,但是卻沒有人告訴我為什么要進行旋轉(WHY)?為什么要這樣旋轉?通過與朋友交流,對于紅黑樹來說,之所以要旋轉是因為左右子樹的高度不平衡,即左子樹比右子樹高或者右子樹比左子樹高。那么,以左旋為例,通過左旋轉,就可以將左子樹的黑高 +1,同時右子樹的黑高 -1,從而恢復左右子樹黑高平衡。

rotate-demo

以右旋為例,α 和 β 為 x 的左右孩子,γ 為 y 的右孩子,因為 y 的左子樹比右子樹高度多一,因此以 y 為根的子樹左右高度不平衡,那么以 y-x 為軸左旋使其左右高度平衡,左旋之后 y 和 β 同時成為 x 的右孩子,然而因為要旋轉的是 x 和 y 結點,因此就讓 β 成為 y 的左孩子即可。

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

紅黑樹的算法復雜度分析

紅黑樹的所有操作的算法復雜度都是 O(lgn)。這是因為紅黑樹的最大高度是 2lg(n+1)。

證明如下:

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

下面使用數學歸納法證明。

當 bh(x) 等于 0 時,即有 0 個節點,那么子樹包含 2^0 - 1 = 0 個內部節點,得證。

對于其他節點,其黑高為 bh(x) 或 bh(x) - 1,當 x 是紅節點時,黑高為 bh(x),否則,為 bh(x) - 1。對于下一個節點,因為每個孩子節點都比父節點的高度低,因此歸納假設每個子節點至少有 2^bh(x)-1 - 1 個內部節點,因此,以 x 為根的子樹至少有 2^(bh(x)-1) - 1 + 2^(bh(x)-1) - 1 = 2^bh(x) - 1個內部節點。

設 h 是樹高,根據性質 4 可知道,每一條路徑至少有一半的節點是黑的,因此 bh(x) - 1 = h/2。

那么紅黑樹節點個數就為 n >= 2^h/2 - 1。

可得 n + 1 >= 2^h/2。兩邊取對數得:

    log(n+1) >= h/2

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

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

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

紅黑樹的插入操作分析

紅黑樹的插入操作,先找到要新節點插入的位置,將節點賦予紅色,然后插入新節點。最后做紅黑樹性質的修復。

新節點賦予紅色的原因

因為插入操作只可能會違反性質 2、4、5,對于性質 2,只需要直接將根節點變黑即可;那么需要處理的就有性質 4 和性質 5,如果插入的是黑節點,那么就會影響新節點所在子樹的黑高,這樣一來就會違反性質 5,如果新節點是紅色,那么新插入的節點就不會違反性質 5,只需要處理違反性質 2 或性質 4 的情況。即根節點為紅色或者存在兩個連續的紅節點。簡而言之,就是減少修復紅黑性質被破壞的情況。

插入算法偽代碼

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

插入的修復

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

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

如果 uncle 是紅色,那么直接將 uncle 變為黑色,同時 parent 也變黑。但是這樣一來,以 grandparent 為根所在的子樹的黑高就 +1,因此將 grandparent 變紅使其黑高減一,然后將 node 指向 grandparent,讓修復結點上升兩個 level,直到遇到根結點為止。

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

插入修復算法的偽代碼

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

插入修復算法的流程圖

red-black-insert-fixup

插入的算法復雜度分析

插入的步驟主要有兩步

a. 找到新結點的插入位置 b. 進行插入修復。而插入修復包括旋轉和使修復結點上升。

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

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

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

紅黑樹的刪除操作分析

紅黑樹的刪除操作,先找到要刪除的結點,然后找到要刪除結點的后繼,用其后繼替換要刪除的結點的位置,最后再做紅黑樹性質的修復。

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

要刪除一個結點(node),首先要找到該結點所在的位置,接著,判斷 node 的子樹情況。

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

刪除過程中需要保存 successor 的顏色 color,因為刪除操作可能會導致紅黑樹的性質被破壞,而刪除操作刪除的是 successor。因此,每一次改變 successor 的時候,都要更新 color。

刪除時用到的 TRANSPLANT 操作

TRANSPLANT(T, u, v) 是移植結點的操作,此函數的功能是使結點 v 替換結點 u 的位置。在刪除操作中用來將后繼結點替換到要刪除結點的位置。

刪除結點的后繼結點沒有左孩子證明

用 x 表示有非空左右孩子的結點。在樹的中序遍歷中,在 x 的左子樹的結點在 x 的前面,在 x 的右子樹的結點都在 x 的后面。因此,x 的前驅在其左子數,后繼在其右子樹。

假設 s 是 x 的后繼。那么 s 不能有左子樹,因為在中序遍歷中,s 的左子樹會在 x 和 s 的中間。(在 x 的后面是因為其在 x 的右子樹中,在 s 的前面是因為其在 x 的左子樹中。)在中序遍歷中,與前面的假設一樣,如果任何結點在 x 和 s 之間,那么該結點就不是 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)

注:筆者參考的是算法導論的偽代碼,但是在實現的時候,因為用 NULL 表示空結點,如果需要修復的結點 need_fixup_node為空時無法拿到其父結點,因此保存了其父結點 need_fixup_node_parent 及其所在方向 direction,為刪除修復時訪問其父結點及其方向時做調整。

刪除操作流程圖

red-black-delete

刪除的修復操作分析

刪除過程中需要保存 successor 的顏色 color,因為刪除操作可能會導致紅黑樹的性質被破壞,而刪除操作刪除的是 successor。因此,每一次改變 successor 的時候,都要更新 color。

會導致紅黑樹性質被破壞的情況就是 successor 的顏色是黑色,當 successor 的顏色是紅色的時候,不會破壞紅黑樹性質,理由如下:

  • 性質 1,刪除的是紅結點,不會改變其他結點顏色,因此不會破壞。
  • 性質 2,如果刪除的是紅結點,那么該結點不可能是根結點,因此根結點的性質不會被破壞。
  • 性質 3,葉子結點的顏色保持不變。
  • 性質 4,刪除的是紅結點,因為原來的樹是紅黑樹,所以不可能出現連續兩個結點為紅色的情況。因為刪除是 successor 只是替換 node 的位置,但是顏色被改為 node 的顏色。另外,如果 successor 不是node 的右孩子,那么就需要先將 successor 的右孩子 successor->right 替換掉 successor,如果 successor 是紅色,那么 successor->right 肯定是黑色,因此也不會造成兩個連續紅結點的情況。性質 4 不被破壞。
  • 性質 5,刪除的是紅結點,不會影響黑高,因此性質 5 不被破壞。

如果刪除的是黑結點,可能破壞的性質是 2、4、5。理由及恢復方法如下:

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

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

注意:該假設只是加在 new_successor 的結點上,而不是該結點的顏色屬性。

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

如果是 BB 情況,就需要將多余的一層“額外黑”繼續上移。此處還要看 new_successor 是原父結點的左孩子還是右孩子,這里設其為左孩子,左右孩子的情況是對稱的。

如果直接將額外黑上移給父結點,那么以 new_successor 的父結點為根的子樹就會失去平衡,因為左子樹的黑高 -1 了。因此需要根據 new_successor 的兄弟結點 brother 的顏色來考慮調整。

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

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

如果 brother->right 和 brother->right 都是黑色,那么好辦,直接將黑色上移,即 brother->color = RED。此時包含額外黑的結點就變成了 parent。parent 為 RB 或 BB,循環繼續。

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

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

刪除修復算法偽代碼

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

刪除修復算法的流程圖

red-black-delete-fixup

刪除操作的算法復雜度分析

刪除的操作主要有查找要刪除的結點,刪除之后的修復。

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

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

資源分享

如果對部分步驟不理解,可以到這個網站看看紅黑樹每一步操作的可視化過程:。

本次代碼的實現請點擊:

總結

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

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

 

本文轉載自


標簽:

本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn


為你推薦

  • 推薦視頻
  • 推薦活動
  • 推薦產品
  • 推薦文章
  • 慧都慧問
掃碼咨詢


添加微信 立即咨詢

電話咨詢

客服熱線
023-68661681

TOP
日韩激情国产 | 日韩欧美在线观看成人 | 国产欧美日韩综合精品一级 | 日韩欧美色激情 | 欧美秘书性爱在 | 日本欧美三级r级国产在线 日韩精品国产一区二区三区 | 喷水gif| 偷拍区清纯另类丝袜美腿 | 亚洲午夜成人 | 国产天堂精品 | a∨中文字幕另类 | 亚洲一区二区三区香蕉 | 国产精品nv在线观看 | 欧美一级中文字幕免费在线 | 在线欧美日韩亚洲国产一区 | 日韩精品免费在线观看 | 日韩精品一区二区三区四区蜜桃 | 女人被男人桶爽 | 香蕉亚洲精品网站国产一二三四 | 国产日产欧产综合 | 动感小站+在线视频+丝 | 91精品国产闺蜜国产在 | 十分钟在线观看免费直播 | 国产又黄又爽视频 | 99re在线视| 国产精品最新资源在线 | 日本又黄又爽gif动态图 | 国产又粗又猛又爽又黄的视频 | 欧美在线精品国自产拍免费 | 成人午夜视频精品一区 | 日韩欧美在线观看视频 | 91热青草国产在线视频 | 亚洲欧美国产制服另类 | 日本免费一级婬片a级中文字幕 | 欧美日韩一区二区综合视频 | 乱子伦视频在线看 | 日本午夜专区一 | 国产剧情精品v国产在线观看 | 99久免费精品视频在线观看 | 欧美视频一区 | 日韩欧美极品在线播放 | 福利乱伦视频 | 国产91精选在线观看导航 | 国产日韩另类欧美视频一区二区 | 国产乱精品女同自线免费 | 欧美日韩视频在线一区二区 | 国产亚洲精品 | ⅴ综合手机在线观看 | 自产视频在线观看 | 日本a级高清影片 | 91香蕉国产线免费水蜜桃 | 国产精品播放一 | 国产日韩免| 国产一区欧美亚洲 | 丰满大码女优aⅴ在线 | 一本大道之中文日本香蕉 | 国产极品美女在线播放不卡 | 精品视频在线观看一区二区 | 国产欧美亚洲精品第一页 | 欧美a∨在 | 国产精品综合视频一区二区 | 亚洲kkk4444在线观看 | 国产性爱在线观看欧美亚洲黄 | 日韩专区第一页 | 欧美一区二区三区网站 | 国产午夜福利院757视频 | 精品国产品香蕉在线观 | 国人小说| 女人窝人体色www在线观看 | 日本一区二区免费在线播放 | 91国语精品福利自产拍 | 亚洲人成中文字幕在线观看 | 国产色xx群视频射精 | 日本中文字幕一区二区有码在线 | 国产精品免费一区二区区 | 国产亚洲人在线观看不卡 | 51视频精品全部免费日产mv | 色一情一乱一伦一区二区三区 | 国产福利不卡在线观看 | 亚洲午夜视频在线观看 | 国产国语一级 | 日韩精品三级一区二区 | 伊伊人成亚洲综合人网香 | 欧美午夜理伦三级在线 | 人成精品视频三区二区一区 | 亚洲亚洲人成网站在线观看 | 全部视频欧美日韩在线无人 | 久青草影院 | 免费看高视频hh网站免费 | 日韩阿v高清视频在线观看 国产不卡高清 | 91电影| 欧美交a欧美精品喷水 | 日韩综合视频威尼斯在线 | 福利成人春色在线观看免费网站 | 最新亚洲人成网站在线 | 亚洲精品日韩在线观看高清不卡 | а√天堂地址在线网 | 国产午夜免费一区二区三区 | 性荡视频播放在线视频 | 精品香蕉免费大视频日韩亚洲欧 | 国产桃色在线成免费视频 | 特级婬片国产高清视频 | 乱子轮熟睡1区 | 国产免费131美女 | 韩国理伦电影午夜三级 | 日本韩国三级 | 91午夜福利国产秒播在线观看 | 尽享高清电影和精彩影视剧 | 亚洲资源最新版在线观看 | 日本亚洲色大成网站www男男 | 国产精品日韩专区一区二区 | 国产精品亚洲第一区不卡原创 | 黑人精品一区二区三区不卡 | 4399国语在线观看视频 | 欧美tube| 国产日韩精品一区在线观看 | 午夜级理论片在线播放202 | 亚洲午夜视频在线 | 日本特黄特色大片免费在线观看 | 精品国精品国产自在久国产 | 日韩免费精品视频 | 欧美在线视 | 色色色导航 | 熟女露脸一区二区三区 | 国产强奷在线播放免费不卡 | 99香蕉国产精品偷在线观看 | 国产在线精品洲综合网首页 | 亚洲精品乱无伦国产 | 99re6热在线精品视频观看 | 国产又色又爽又 | 亚洲va在线va天堂va在线 | 亚洲aⅴ精品国产首次亮相 日韩美女aa高清在线观看 | 国产欧美网址 | 日本加勒比在线 | 精品亚洲日韩国产一二三区 | 亚洲午夜成 | 在线欧美日韩亚洲国产一区 | 成人福利国产视频 | 欧美性一区二区三区 | 精品国产a∨无 | 日本乱码乱码免费高清视频 | 97se亚洲国产综合自在线观看 | 亚洲精品综合在线影院 | 婷婷亚洲久悠悠色悠在线播放 | 国产一级二级三级精品视频 | 国产激情在线观看 | 国产精品厕所电影 | 在线观看第一页 | 欧美黑人 | 三级欧美在线观看日本 | 日韩成本大片35分钟免 | 国产精品va在线播放我和闺蜜 | 亚洲qvod图片区电影 | 色五月在线观看婷婷国产 | 日本aⅴ日 | 国产a三级三级三级 | 欧美成在线国产更新影片资源 | 国产精品外围在线观看 | 人妖和人妖互交性xxxx视频 | 精品国产自在精品国产精 | 亚洲第一国产日韩精品欧美 | 日本精品在线一区欧美 | 成人免费电影 | 成全免费高清观看 | 女视频精品免 | 欧美在线+在线播放 | 成人午夜污污在线观看网站 | 国语自产精品视频在线看 | 精品日韩四区五区六 | 精品自拍视频在线观看 | 日韩一区二区一道高清视频 | 斑马斑马在线 | 国产精品v国产在线观看a | 两性色午夜视频免费老司机 | 国产一区二区在免费观看 | 精品日韩国产欧美视频 | 国产日韩精品欧美一区色 | 中文字幕日韩一区二区三区不卡 | 国产一区二区视频在线播放 | 60分钟床色大片在线观看免费 | 好看的电影电视剧在线观看 | 日韩中字在线 | 青苹果乐园影院在线播放 | 欧美特黄高清免费观 | 亚洲日韩| 漂亮大学生韩国三级播放国产 | 国产亚洲高清在线精品不卡 | 国产欧美日韩久 | 国产交换精品一区二区三区 | 国产美女极品免费视频 | 麻花传媒68xxx在线观看 | 蜜桃视频高清免费 | 国产的中文字幕在线观看 | 欧美在线一级午夜免费 | 国产综合在线视频 | 国产免费一 | 久青草国产在视频在线观看 | 成人免费观看a级网站 | 国产中文字幕玖玖观看互动交流 | 亚洲专区日韩专区在线观看 | 欧美一级韩国一级日韩一级 | 国产污污污十八在线精品观看 | 国产欧美精品国产国产专区 | 欧美床戏吻戏摸下面吻胸 | 国产午夜小视频在线不卡 | 在线视频一区二区三区不卡 | 欧美国产日韩a欧美视频 | 日韩在线观看中文字幕一区二区 | 婷婷影视 | 中文字幕一区二区三区日韩精品 | 国产精品福利电影一区二区三 | 精品性影院一区二区三区 | 欧美日韩午夜专区 | 亚州国产高清在线一 | 国产aⅴ视频一 | 国产亚洲欧 | 国产熟女熟女 | 自产拍在线观看 | 国产精品青草综合久 | 三区四区五区在线播放 | 免费观看日本在线 | 十九岁在线观看免费完整版 | 欧美日韩国产欧美 | 欧美日韩另类在线专区卡通 | 国产真实露脸 | 国产嫖妓正在播放 | 日韩国产一区二区在线播放 | 精品国产免费人成电影在线看 | 97影院理论午夜论不卡 | 国产一区二区三区四区精 | 亚洲欧美在线观看片不卡 | 国产乱码一卡二卡3卡四卡 国产精品视频每日更新播放 | 国内综合精品午 | 精品欧美小视频在线观看 | 亚洲欧美日韩综合aⅴ电影 国产一区二区欧美专区 | 欧美精品一区在线发布 | 欧美日韩亚洲国产一 | 免费最新热播韩剧美剧电视剧 | 亚洲日韩精 | 国产激情一区二区三区四区 | 国产人妖ts重口系列网站观看 | 亚州激情视频 | 欧美激情国产一区在线不卡 | 免费国产喷水在线观看 | 韩国高清乱理伦片中文字幕 | 亚洲大片在线观看网址 | 亚洲欧美日韩一区二区在线观看 | 国产男女爽爽爽爽爽爽爽爽 | 精品亚洲欧美日韩 | 欧美高清性色生 | 国产精品大片在线看 | 国产婷婷精品任我爽欧美 | 精品欧美日 | 99视频在线精品自拍 | 国产啪精品视频网站丝袜 | 精品一区二区三区夜夜嗨 | 国产精品一区二 | 人与禽性777777 | 中文字幕在线观看日本 | 成人起碰免费视频 | 欧洲在线免费视频 | 欧美xxxx黑人又粗又长精品 | 国产日韩在线观看一区二区三区 | 秋霞影视 | 国产老熟女aⅴ | 国产精品三 | 欧美精品第1页www劲爆 | 91精品啪在线观看国产91 | 两性色午夜视频免费网 | 国产午夜在线观看视频 | 日本成年人视频网站 | 欧美国产精品 | 4k影视资源免费在线观看 | 亚洲午夜成人 | 九九精品视频 | ww欧日韩视频高清在线 | 午夜亚洲国产精品福利在线 | 国产精品igao视频网网址 | 日本一区二区更新不卡 | h国产一级小视频在线看 | 韩欧美一区二区 | 欧亚日韩中文字幕在线 | 中文天堂最新版资源 | 日韩经典一区 | 女同国产剧情在线观看 | 无尽动漫性视频╳╳╳3d | 蜜桃一区二区三区 | 国产91色在 | 91精品专区国产盗摄 | 91看片婬黄大片 | 日本国产亚洲 | 国产午夜三级一区二区三 | 欧美韩日一区二区图区 | 成人国产欧美精品一区二区 | 福利一区二区三区在线观看 | 无人一码二码三码4码免费 国产精品欧美一区二区三区不卡 | 国产又爽又色又刺激视频含羞草 | 91午夜福利国产秒播在线观看 | 国产一级特黄aa大片线观看 | 国产中文字幕在线观看 | 欧亚乱色熟一区二区三四区 | 国产午夜亚洲精品不卡影院 | 久青草视频97国内免费影视 | 国产人妖爆视频在线观看 | 国产日韩在线观看一区福利 | 国产精品1区在线播放 | 变态拳头交视频一区二区 | 国产福利一区二区精品秒拍 | 日本淫秽视频在线 | 丰满岳乱妇一区二区三区 | 国产精品免费中文字幕在线观 | 国产伦精品一区二区三区视频 | 精品日本亚洲专区 | 国产xxxx视频在线观看软件 | 国产探花| 被同桌扒开腿用震蛋器折磨 | 欧美日韩在线观看 | 欧洲女人性开放视频过性 | 国产91福利小视频在线观看 | 国产日韩精品欧美激情在线 | 国产在线精品一区二区在线看 | 欧美日韩免费手机在线 | 欧美午夜在线观看 | 97sex| 欧美日韩生活片 | 一区视频观看 | 911国产| 日本免费一区二区三区最新vr | 欧美成a高清在线观看www | 欧美日韩国产一级视频在线看 | 男人的天堂在线视频 | 国产福利不卡视频在免费 | 免费电影电视剧网站 | 一级a性色生活片 | 亚欧洲乱码视频一二三区 | 国产精品精品国内自产拍视频 | 欧美在线 | 国产乱码精品一区二区三区播放 | 亚洲自怕偷柏图 | 日本免费一级二级三 | 国产色系视频免费在线观看 | 国产性生交xxxxx免费 | 国产日产精品视频 | 亚洲人成a在线网站 | 欧洲一区| 国语自产拍在线观看对白 | 97操人人草人人 | 91精品福利自产拍在线 | 国产嫖妓一区二区三区 | 日本福利一区二 | 午夜男女羞羞爽爽爽视频 | 国产在线第一页 | 日韩精品三区 | 国产日韩视频在线播放 | 不卡国产福利在线观看 | 日本中文字幕高清7 | 国产涩涩视频在线观看 | 51xx午夜影视福利 | 国产精品女同一区二区在线 | 48国产吹潮在线观看 | 国产寡妇偷人在线观看 | 欧美人与性动交α欧美精品 | 亚洲国产中文在线二区三区免 | 男同桌上课时狂揉我下面污文 | 欧洲亚洲一区二区三区导航 | 91精品中文字幕 | www国产| 亚洲男人的天堂一区二区 | 人操人碰 | 亚洲精品视 | 日韩精品图片观看网址大全下载 | 成全在线观看免费高清电视 | 边做边爱完整版免费视频播放 | 9re热国产这里只 | 老鸭窝laoyaw| 国产电影一曲二曲三曲 | 五月激情丁香婷婷综合网 | 日本一区二区三区在线观看 | 国色天香在线视频www | 欧美日韩一区二区视频免费看 | 影视中文日本亚洲 | 欧美精品视频在线观看 | 成人国产精品一区二区网站 | 亚洲欧洲自拍图片 | 欧美日韩一区二区三区四区91 | 日韩欧美一区二区高清视频 | 中文字幕精品乱码亚洲一区 | 美女视频黄的网站全免弗 | 精品国产福利第一区二区三区 | 国产精品视频11 | 日本国产网曝图片在线观看 | 日本黄页 | 日本六九一区二区视频 | 中日欧美精品在线播放 | 色色www | 红杏亚洲 | 亚洲一区二区三区四区在线观看 | 字幕mv免费高清 | 国产男女爽爽爽爽爽爽爽爽 | 五月婷婷中文字幕 | 国产制服日韩丝袜86页 | 激情深爱五月开心婷婷综合 | 成人拍拍拍免费视频网站 | 亚洲+欧洲+日本+国产 | 乱码一线二线三线新区破解欧 | 老熟女重囗味hdxx70星空 | 午夜免费久 | 97午夜理论片影院在线播放 | 综合另类小说欧美另类图片 | 欧美a级情欲片在线观看免费 | 手机看片免费永久在线观看 | 国产又爽又黄又刺激的软件 | 欧美一级性爱视屏 | 韩国三日本三级中文字幕 | 菠萝菠萝蜜视频在线观看时 | 1000部夫妻午夜免费 | 成人级片中文字幕在线播放 | 国产视频一区二区在线观看 | 中文字幕国产专区99 | 国产欧美一区二区精品性色 | 51精品| 国产高清在线精品四区 | 十分钟在线观看免费直播 | 国产日韩欧美最新在线 | 亚洲人成小说网站色在线 | 99ri视频一区二区三区 | 国产精品成人国产乱 | 亚洲一级影院 | 99ri| 自拍偷拍欧美激情 | 日本高清中文字幕一区二区三区 | 国产精品国内免费一区二区三区 | 在线播放一区二区 | 免费亚洲精 | 最近中文字幕2025免费 | 97视频在线播放免费观看视频 | 成人国产精品视频 | 国精产品一区二区三区有限公司 | 欧美日韩在线观看区一二 | 日本打工渡假 | 国产乱理伦片在线观看夜 | 国产在线拍 | 精品一区二区三区影片 | 国产91精品秘入口蝌蚪 | 91桃色国产精品免费在线观看 | 免费手机影院 | 国产美女一级做视频爱 | 又黄又粗暴的g | 亚洲国产日韩一级精品视频网站 | 欧美精品一区二区三区免费 | 欧美91成人亚洲播 | 国产探极品在线观看观看 | 午夜理论片在线观看免费 | 精品乱伦一级二级三级 | 成人欧美日韩在线观看 | 91popr国产在线观看 | 欧美bb| 欧美色欧美亚洲高清在线视 | 精品日韩欧美一区二区三 | 国产精品专区第1页 | 欧美日韩国产另类一区二区三区 | 真人二十三式性视频(动) | 日本亚洲视频免费观看 | 100部免费视频 | 性插爽视频欧 | 在线精品99re网 | 成人大黄全免费网站 | 成人公开免费视频 | 国产精品网红尤物福利在线观看 | 日产国产一区二区 | 亚洲欧美日韩综合在线丁香 | 国产极品精品免费 | 日本tv | 九一影院| 在线日韩欧美视频一区二区 | 亚洲国产精品隔壁老王 | 真人一级一级99片黄大片 | 视频三区| 亚洲视频欧美视频在线视频 | 欧美一区日 | 国产欧美日韩va另类在 | 亚洲欧美国产高清va在线播放 | 欧美人成| 日韩在线视频一区 | 99久热re在线 | 国产国产精品人在线视 | 欧美国产精品va在线观看 | 亚洲国产欧美精品一区二区三区 | 亚洲日韩在线观看 | 99热这里只有精品5 国产综合在线观看 | 国产精品jizz在线观看老狼 | 亚洲国产砖一线二线 | 92午夜福利手 | 国产精品一区二区三区大 | 欧美中文一区 | 国产精品激情偷乱一区二区∴ | 日韩精品大秀视频在线观看 | 国产一区二区三区在线播放 | 国产又爽又黄 | 国产日韩在线是高清视频 | 日韩性freexxxx在线观看 | 日本欧美在线播放中文字幕 | a级国产乱理伦片 | 久爱www免费人成播 国产精品午夜福利不卡视频 | 欧美丰满大黑帍在线播放 | 怡红院在线a男人的天堂 | 欧美五月激情综合网 | 亚洲.欧美.中文 | 国产91精品福利资源在线观看 | 91福利国产在线 | 国产在线视频网站 | 国产精品性爱不卡在线观看 | 日韩二区在线 | 国产97在线视频 | 成年人免费在线播放 | 国产精品极品美女自在线观看 | 中国精品国产yw | 亚洲欧美天堂日韩 | 日韩欧美在线视频 | 欧美又色又爽又黄刺激免 | 欧美在线视 | 亚洲手机在线人成网站 | 国产亚洲一区二区三区在线 | 日产高清砖码砖专区 | 国产性爱一级 | 久9re只有这里精品视频 | 国精产品一区一区三区 | 亚洲成a人片在线观看日本 免费一级中文 | 日韩美女黄大片在线观看 | 国产91九色在线播放 | 欧美日韩人人精品影视 | 中文字幕第一页国产 | 日韩一区二区三区不卡免 | 免费99精品国 | 国产午夜福利精品一区二区 | 婷婷四房综合激情五月在线 | 欧美激情全球免费视频 | 国产不卡免费视频 | 成人啪精品视频免费网 | 国产精品国内免费一区二区三区 | 国产乱妇乱子在线视频 | 国产精品福利电影一区二区 | 精品一区二区三区在线 | 精品手机在线 | 国产免费一区二区三区在线观看 | 国产在线精品一区二区 | 成人三级在线播放 | 精品国产香蕉在线观看 | 国产区免 | 国产a国产国产片 | 日本毛x片免费视频观看视频 | 日韩xxxx在线免费观看 | 成人免费视频软件网站 | 熟女一区中文字 | 日本欧美大 | 欧洲尺码日本尺码美国欧洲lv | 国产女主播 | 永久免费 | 国产精品第一偷怕自怕1区 野花香视频免费观看高清在线 | 中文在线天堂网www 三年片在线观看免费观看大全 | 亚洲欧洲日产国码农村 | 免费+国产 | 国产午夜伦伦午夜伦 | 国产m3u8在线观看 | 国产日韩精品一区二区在线观看 | 欧美性爱150p| 在线观看视频在线播放9 | 视频在线一区二区三区 | 国产精品va欧美精品v日韩 | 日韩欧美亚洲中文字幕 | 在线观看人成视频免费不卡 | 日本xxx在线观看免费播放 | 国产va免费精品高清在线 | 国产激情免费视频在线观看 | 免费国产h视频在线观看86 | 国产欧美日韩在线视频 | 欧美日韩国产一区在线观看 | 国产视频福利一区电影 | 欧美日韩亚洲精品成人 | 免费91视频| 欧洲一区二区三区 | 成年美女黄| 日本一区二区三区最新免 | 日韩亚洲综合欧美 | 欧洲欧美精品日韩色午夜 | 午夜理论片yy8860y影院 | 精品欧美视频第二页在线观看 | 国产一区二区三区不 | 韩国一区二区在线观看免费在线 | 免费人成黄页网站大全在线观 | 美丽的姑娘高清版在线观看 | 在线精品亚洲一区二区绿巨人 | 亚洲中文字幕在线精品2025 | 国产手机自拍视频 | 国产乱子伦 | 欧美性生 | 国产精品福利在线免费观看 | 国产精品自拍第一页 | 亚洲欧美激情在线一区 | 一二三四区免费 | 福利资源在线导航网址 | 国产人妖ts视频在线观看 | 国产系列欧美系列每日更新 | 国产精品一区二区亚瑟不卡 | 成全影院大全在线观看国语 | a级国产乱理 | 国产在线观看精品一区二区 | 日本午夜专区一 | 欧美日韩免费高清一区二区 | 国产精品女同视频一区二区 | 国产精品亚洲综合第一区 | 日韩综合无尺码码电影 | 国产精品高清一区二区三区人妖 | 成人影视在线看 | 精品国产福利在线观看网站 | 日本天堂天v在线播放 | 女人与zzzooooxxxx | 精品国产午夜 | 99亚洲电影国产不卡 | 国产熟女一 | 国产精品自产拍在线观看 | 国产a天堂一区二区专区 | 免费国产一区二区8x | 国内精品卡一卡二卡三 | 日本精品 | 色国产综合免 | 成品网站w在线观看 | 国产乱子伦精 | 学生妹国产在线第一页 | 精品一区二区三区国产在线观看 | 日韩激情国产 | 成全视频在线观看高清全集 | 精品国产插穴精品网站日本 | 成人拍拍拍免费视频网站 | 一级欧美一级日韩片 | 精品日本在 | 欧美喷潮极限另类视频 | 日本韩国欧美在 | 亚洲日本va | 一二区高清无 | 日本日本乱码伦视频在线 | 欧美性色生活 | 国产精品猎奇另类视频 | 999国内精品永久免费视频 | 亚洲欧美成va人在线观看 | 亚州激情视频 | 午夜福利理论片在线观看 | 欧美精品小视频 | 精品日本免费一区二区三区 | 免费国产va在线观看中文字 | 日本成熟丰满老妇xxxx | 日韩激情一区二区三区在线影院 | 韩国漂亮美女三级在线观看 | 91精品啪在线观看国产91 | 日韩老熟女一区二区 | 亚洲性爱免费网址 | 一区二区三区四区国产免费 | 精品一区二区三区四区 | 一区二区三区国产精华护肤品 | 成人国产亚洲精品a区天堂 青青草原国产在 | 国产不卡在线观看视频 | 九九九在线视频 | 日产乱码一二三区别免费下 | 精品在线国产一区二区三区 | 老熟女另类xxx精品视频 | 日韩中文字幕v亚洲中文字幕 | 日产成人高清视频 | 在线日韩欧美视频一区二区 | 国产中文字幕视频在线观看 | 日韩草逼 | 国产真实乱系列视频在线观看 | 欧美综合自拍亚洲综合区 | 国产女人喷潮视频在线观看免费 | 国产素人视频在线播放 | 亚洲aⅴ精品国产首次亮相 日韩美女aa高清在线观看 | 国产天堂一区 | 五月综合激情中文字幕版 | 91精品国产高清91久 | 午夜dj免费观看 | 精品三级乱伦免费 | 一区二区三欧美 | 成人午夜视频免 | 国产精品一区99 | 精品国产欧美一区二区三区成人 | 在线观看日韩欧美 | 爱夜夜性夜夜夜夜夜夜爽 | 国产免费人成视频在线观看播放 | 999精品 | 美女国产在线观看免费观看 | 日本激情夜里视频在线观看 | 丝袜视频国产一区 | 国产夫妻性生活视频 | 国产99精品视频一区二区三区 | 国产系列亚洲精品 | 国产在在线免费观看 | 阿v视频国产免在线手机观看 | 色综合色综合婷婷热 | 亚洲男人第一αv网站 | 国产精品天干天干在线观看 | 蜜桃网址 | 欧美日韩精品一区二区免费看 | 日韩欧美精品国产亚洲综合 | 99欧美午夜一区二区福利 | 欧美日韩在线观看精品 | 涩涩www在线观看免费高清 | 欧美一级性爱簧片免费播放 | 日韩精品一区二区三区中文精品 | 日本制服丝袜在线 | 高清影视| 91福利区 | 老司机app安卓破解版 | 国产精品亚洲二区在线播放 | 国产一区二区三区在 | 国产精品v国产在线观看a | 成人国产欧美精品一区二区 | 欧美人与动性行为 | 欧美日韩国产一区二区 | 国产在线91精品天天更新 | 欧美又大 | 日本高清一区二区三区欧美 | 国产精品亚洲玖玖 | 88国产精品欧美一区二区三区 | 国产国拍亚洲精品午夜不嘿嘿 | 中文字幕在线免费专区 | 国产日韩一区在线精品 | 国产精品成人不卡在线观看 | 99色色色资源站国产精品 | 被窝网国产在线视频色 | 国产亚洲精品线 | 国产香蕉在线观 | 在线天堂免费中文字幕 | 国产99视频精品专区 | 成年人网站在线播放 | 91国内揄拍 | aaa成人一区二区三区 | 香蕉精品亚 | 亚洲高清不卡在线观看 | 欧美aaaaa级毛卡片在线 | 国产精品不卡一区二区三 | 日本视频观看无卡免费精品页 | 97se色综合一区二区二区 | 亚洲日本成本人观看 | 国产精品欧美一区二区在线观看 | 夜鲁夜鲁很鲁在线视频视频 | 亚洲天堂一区二区三区 | 欧美日韩韩高清在线不卡 | 亚洲精品乱码在线观看 | 日本精品一区二区在线观看 | 亚洲一区激情校园小说 | 欧美亚洲日韩一区二区三区中 | 国产一区二区三区在线视频 | 日韩草莓视频一区二区在线 | 国产在线国偷精品产拍 | а∨天堂在线中 | 日韩欧美国产免费看清风阁 | 久99国产精品成人欧美日韩 | 黑色午夜 | 99热这里只有精品88 | 老司机精品一区在线视 | 靠逼视频一区二区三区 | 国产亚洲一卡2卡3卡四卡网站 | 日本精品中文字幕在线不卡 | 国产91啦| 国产精品又粗又大 | 啦啦啦ww | 欧美福利一区二区三区 | 欧美日韩国产精品新品上市 | 欧美高清一区二 | 国产精品一区欧美日 | 日本高清中文字幕在线 | 国户一区二区免费视频 | 国产精品臀控福利在线观看 | 区二区三区四区免 | 成人伊人亚洲人综合网站 | 国产精品高清自在线 | 日韩幕无线码一区中文 | 国产丝袜视频 | 国产特黄a三级三级三级 | 亚洲国产欧美日韩精品网 | 免费高清乱伦欧美 | 韩国电影院 | 日韩午夜福利在线免费观看 | 国产精品不卡一 | 三级三级三级a级全黄三电影 | 日产精品卡二卡三卡四卡区 | 国产欧美日韩综合精品无毒 | 国产精品r级最新在线观看 国产欧美日韩亚洲精品中文专区 | 亚洲欧美日韩高清综合678 | 麻花传剧mv在线看 | 亚洲国产欧美日韩另类 | 国产精品免费视频一区二区三区 | 国产v综合v亚洲欧美大天堂 | 国产一区在线视 | 丝袜国产精品亚洲 | 九九在线观看精品视频6 | 不卡日韩欧美亚洲 | 黑人免费 | 欧美日韩精品一区二区 | 国产肥熟女视频一区二区三区 |