久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

紅黑樹(shù)詳細(xì)分析與c++實(shí)現(xiàn)

紅黑樹(shù)詳細(xì)分析與c++實(shí)現(xiàn) 紅黑樹(shù)的刪除紅黑樹(shù)刪除極其復(fù)雜,實(shí)現(xiàn)難度比AVL樹(shù)刪除更大要考慮的各種分支情況繁多編程實(shí)現(xiàn)時(shí)在瑣碎的細(xì)節(jié)上容易出錯(cuò)但只要用心正確實(shí)現(xiàn)刪除算法不難對(duì)紅黑樹(shù)按對(duì)二叉搜索樹(shù)執(zhí)行刪除的方式執(zhí)行刪除,如果實(shí)際刪除的節(jié)點(diǎn)是紅節(jié)點(diǎn),按正常方式刪除刪除后原樹(shù)仍為紅黑樹(shù)結(jié)束若實(shí)際刪除的是黑節(jié)點(diǎn)該節(jié)點(diǎn)有父節(jié)點(diǎn)并且有唯一子女節(jié)點(diǎn)且該子女節(jié)點(diǎn)為紅將該子女節(jié)點(diǎn)染黑,并按對(duì)二叉搜索樹(shù)執(zhí)行刪除的方式刪掉實(shí)際刪除的節(jié)點(diǎn)即可結(jié)束若實(shí)際刪除黑節(jié)點(diǎn)該節(jié)點(diǎn)有父節(jié)點(diǎn)沒(méi)有子女節(jié)點(diǎn)直接刪除實(shí)際刪除節(jié)點(diǎn)將父節(jié)點(diǎn)對(duì)應(yīng)指針域置空令g父節(jié)點(diǎn),unullptr若實(shí)際刪除黑節(jié)點(diǎn)該節(jié)點(diǎn)有父節(jié)點(diǎn)有唯一女節(jié)點(diǎn)該子女節(jié)點(diǎn)為黑則按對(duì)二叉搜索樹(shù)執(zhí)行刪除的方式正常執(zhí)行刪除并令g實(shí)際刪除節(jié)點(diǎn)父節(jié)點(diǎn) u實(shí)際刪除節(jié)點(diǎn)子女節(jié)點(diǎn)若實(shí)際刪除黑節(jié)點(diǎn)該節(jié)點(diǎn)沒(méi)有父節(jié)點(diǎn)若該節(jié)點(diǎn)沒(méi)有子樹(shù)直接刪除啦若該節(jié)點(diǎn)有左子樹(shù)沒(méi)有右子樹(shù)刪除該黑節(jié)點(diǎn)然后若左子樹(shù)根節(jié)點(diǎn)為紅染黑結(jié)束 無(wú)左子樹(shù)有右子樹(shù)類似至于既有左子樹(shù)又有右子樹(shù)的情形已經(jīng)被之前所述情形包括在內(nèi)了不用考慮經(jīng)過(guò)上述步驟后如果刪除操作未結(jié)束我們有子樹(shù)gg為其根節(jié)點(diǎn),u為g左子樹(shù)或右子樹(shù)根節(jié)點(diǎn),注意u可能為nullptr即外節(jié)點(diǎn)而且可以發(fā)現(xiàn)u子樹(shù)滿足條件A:在u中刪除一個(gè)節(jié)點(diǎn)并在u中做或不做顏色調(diào)整和平衡化旋轉(zhuǎn)后根節(jié)點(diǎn)u為黑色,從原紅黑樹(shù)根節(jié)點(diǎn)到子樹(shù)u各外節(jié)點(diǎn)的路徑上黑色節(jié)點(diǎn)(不包括原紅黑樹(shù)根節(jié)點(diǎn))數(shù)目比刪除前原紅黑樹(shù)黑高度小一,從根節(jié)點(diǎn)u至子樹(shù)u各外節(jié)點(diǎn)的路徑上沒(méi)有兩個(gè)連續(xù)的紅色節(jié)點(diǎn),子樹(shù)u為二叉搜索樹(shù),子樹(shù)u的節(jié)點(diǎn)非紅即黑現(xiàn)設(shè)有執(zhí)行刪除操作的紅黑樹(shù)的子樹(shù)gg為其根節(jié)點(diǎn)以u(píng)為根節(jié)點(diǎn)的子樹(shù)為g左子樹(shù)或右子樹(shù),u可以為nullptr并且u子樹(shù)滿足條件A首先注意任意非外節(jié)點(diǎn)的節(jié)點(diǎn)都有兩個(gè)子女兩個(gè)子女要么都是外節(jié)點(diǎn)要么其中一個(gè)是要么都不是當(dāng)然了紅色節(jié)點(diǎn)都不是外節(jié)點(diǎn)所以必有兩個(gè)子女黑色節(jié)點(diǎn)可能為也可能不為外節(jié)點(diǎn)若u為g的右子女則有以下幾種情形g的左子女v為黑色,g為紅色此時(shí)v不可能是外節(jié)點(diǎn),若v是外節(jié)點(diǎn)注意原紅黑樹(shù)根節(jié)點(diǎn)到外節(jié)點(diǎn)v的路徑上黑色節(jié)點(diǎn)(不包括原紅黑樹(shù)根節(jié)點(diǎn))數(shù)目等于刪除前原紅黑樹(shù)黑高度r,而原紅黑樹(shù)根節(jié)點(diǎn)到子樹(shù)u的各外節(jié)點(diǎn)的路徑上黑色節(jié)點(diǎn)(不包括原紅黑樹(shù)根節(jié)點(diǎn))數(shù)目等于r-1(子樹(shù)u滿足條件A),因此g到v路徑(節(jié)點(diǎn)g不算在內(nèi))上黑色節(jié)點(diǎn)數(shù)目減一即為g到子樹(shù)u各外節(jié)點(diǎn)的路徑(節(jié)點(diǎn)g不算在內(nèi))上黑色節(jié)點(diǎn)數(shù)目由假設(shè)v是外節(jié)點(diǎn)故g到v路徑(節(jié)點(diǎn)g不算在內(nèi))上黑色節(jié)點(diǎn)數(shù)目為1因此g到子樹(shù)u各外節(jié)點(diǎn)的路徑(節(jié)點(diǎn)g不算在內(nèi))上黑色節(jié)點(diǎn)數(shù)目為0這是不可能的因?yàn)閡為黑色v不是外節(jié)點(diǎn)所以有左子女w,這里若w為紅色即如上圖所示此時(shí)交換g,w和v的顏色,對(duì)子樹(shù)g右單旋轉(zhuǎn),然后根據(jù)子樹(shù)u滿足條件A不難驗(yàn)證此時(shí)原樹(shù)為紅黑樹(shù)已平衡結(jié)束g的左子女v為黑色,g為紅色,v的左子女w為黑色,v的有子女r為紅色對(duì)g先左后右雙旋轉(zhuǎn),將g染黑,然后根據(jù)子樹(shù)u滿足條件A不難驗(yàn)證此時(shí)原樹(shù)為紅黑樹(shù)已平衡結(jié)束g的左子女v為黑色,g為紅色,v的左子女w為黑色,v的有子女r為黑色,此時(shí)交換g,v顏色然后根據(jù)子樹(shù)u滿足條件A不難驗(yàn)證此時(shí)原樹(shù)為紅黑樹(shù)已平衡結(jié)束g的左子女v為黑色,g為黑色,v(由上述理由它不是外節(jié)點(diǎn))的左子女w為紅色,此時(shí)對(duì)g右單旋轉(zhuǎn)然后將w染黑然后根據(jù)子樹(shù)u滿足條件A不難驗(yàn)證此時(shí)原樹(shù)為紅黑樹(shù)已平衡結(jié)束g的左子女v為黑色,g為黑色,v的左子女w為黑色,v的右子女r為紅色,此時(shí)對(duì)g做先左后右雙旋轉(zhuǎn)然后將r染黑,然后根據(jù)子樹(shù)u滿足條件A不難驗(yàn)證此時(shí)原樹(shù)為紅黑樹(shù)已平衡結(jié)束g的左子女v為黑色,g為黑色,v的左子女w為黑色,v的右子女r為黑色,此時(shí)對(duì)g作右單旋轉(zhuǎn),并將g染紅色于是根據(jù)子樹(shù)u滿足條件A不難驗(yàn)證g樹(shù)旋轉(zhuǎn)后為紅黑樹(shù)而且恰好滿足條件A那么若旋轉(zhuǎn)后的g樹(shù)的根已為執(zhí)行刪除操作的紅黑樹(shù)根節(jié)點(diǎn)則可以結(jié)束平衡化過(guò)程,若不為根節(jié)點(diǎn)由于旋轉(zhuǎn)后的g樹(shù)滿足條件A所以原紅黑樹(shù)仍然不平衡于是令u旋轉(zhuǎn)后g樹(shù)根節(jié)點(diǎn) g旋轉(zhuǎn)前g樹(shù)根節(jié)點(diǎn)父節(jié)點(diǎn),回溯至上一層按所列各情形執(zhí)行平衡化這樣做是合理的因?yàn)樾D(zhuǎn)后的g樹(shù)滿足條件A。g的左子女v為紅色,g為黑色,v的右子女r為黑色(顯然),按和上述同樣的理由r不可能是外節(jié)點(diǎn),所以r必有左子女s,若s為紅色,則對(duì)g做先左后右雙旋轉(zhuǎn),將s染黑,然后根據(jù)子樹(shù)u滿足條件A不難驗(yàn)證此時(shí)原樹(shù)為紅黑樹(shù)已平衡結(jié)束g的左子女v為紅色,g為黑色,v的右子女r為黑色,r的左子女s為黑色,r的右子女t為紅色,此時(shí)對(duì)子樹(shù)r做左單旋轉(zhuǎn),旋轉(zhuǎn)完后將其根節(jié)點(diǎn)鏈接至v的右指針域,然后對(duì)子樹(shù)g做先左后右雙旋轉(zhuǎn)并把t染成黑色然后根據(jù)子樹(shù)u滿足條件A不難驗(yàn)證此時(shí)原樹(shù)為紅黑樹(shù)已平衡結(jié)束g的左子女v為紅色,g為黑色,v的右子女r為黑色,r的左子女s為黑色,r的右子女t為黑色,此時(shí)對(duì)子樹(shù)g做右單旋轉(zhuǎn)并交換v和r的顏色然后根據(jù)子樹(shù)u滿足條件A不難驗(yàn)證此時(shí)原樹(shù)為紅黑樹(shù)已平衡結(jié)束若u為g的右子女則有如下幾種情形這些情形和u為g的右子女時(shí)對(duì)應(yīng)的情形是對(duì)稱的以下所列這些情形從上之下依次和上文所列各情形從上至下保持對(duì)應(yīng)的對(duì)稱關(guān)系平衡化操作和顏色調(diào)整操作也保持對(duì)應(yīng)顏色調(diào)整操作不便平衡化操作正好相反分析是類似就不一一分析只簡(jiǎn)單地列出平衡化操作的類型和顏色調(diào)整操作。g左單旋轉(zhuǎn),交換w,g和v顏色,結(jié)束g先右后左雙旋轉(zhuǎn),g染黑結(jié)束交換g,v顏色,結(jié)束g左單旋轉(zhuǎn),w染黑,結(jié)束g先右后左雙旋轉(zhuǎn),r染黑結(jié)束g左單旋轉(zhuǎn),g染紅,若旋轉(zhuǎn)后的g樹(shù)的根已為執(zhí)行刪除操作的紅黑樹(shù)根節(jié)點(diǎn),結(jié)束否則令u旋轉(zhuǎn)后g樹(shù)根節(jié)點(diǎn) g旋轉(zhuǎn)前g樹(shù)根節(jié)點(diǎn)父節(jié)點(diǎn),回溯至上一層按所列各情形執(zhí)行平衡化g先右后左雙旋轉(zhuǎn),s染黑,結(jié)束r右單旋轉(zhuǎn),g先右后左雙旋轉(zhuǎn),t染黑結(jié)束g左單旋轉(zhuǎn),改變u和r的顏色,結(jié)束從以上討論就可以看出循環(huán)不變量了它就是u子樹(shù)滿足的條件A利用該循環(huán)不變量結(jié)合前面的介紹和博主所寫的AVL樹(shù)插入刪除算法分析一文中的分析思路就可總結(jié)出紅黑樹(shù)的刪除算法這里省略可自行分析。紅黑樹(shù)刪除算法的具體實(shí)現(xiàn)請(qǐng)參考下方代碼。下面討論紅黑樹(shù)的插入在空樹(shù)中插入可直接插入再把插入節(jié)點(diǎn)染黑如果在非空紅黑樹(shù)中插入設(shè)插入的新節(jié)點(diǎn)為uu在節(jié)點(diǎn)p下插入那么無(wú)論u是在p的左子樹(shù)還是右子樹(shù)中插入,以u(píng)為根的子樹(shù)(左右子樹(shù)為外節(jié)點(diǎn))總滿足以下條件B按對(duì)二叉搜索樹(shù)執(zhí)行插入的方式在子樹(shù)u中插入新節(jié)點(diǎn)后在u中做或不做顏色調(diào)整及平衡化旋轉(zhuǎn)后子樹(shù)u根節(jié)點(diǎn)u為紅色從執(zhí)行插入操作的紅黑樹(shù)根節(jié)點(diǎn)至子樹(shù)u各外節(jié)點(diǎn)的路徑上黑色節(jié)點(diǎn)(不包括該紅黑樹(shù)根節(jié)點(diǎn))的數(shù)目都等于插入前原紅黑樹(shù)的黑高度u至子樹(shù)u任意外節(jié)點(diǎn)的路徑上沒(méi)有兩個(gè)連續(xù)的紅色節(jié)點(diǎn),子樹(shù)u為二叉搜索樹(shù),子樹(shù)u所有節(jié)點(diǎn)非紅即黑。先設(shè)有執(zhí)行插入操作的紅黑樹(shù)的子樹(shù)u它滿足條件B,u的父節(jié)點(diǎn)為p,u為p的左子女或右子女。若u為p的左子女則有如下幾種情形p為黑色,此時(shí)由子樹(shù)u滿足條件B不難驗(yàn)證執(zhí)行插入操作的紅黑樹(shù)已恢復(fù)平衡結(jié)束平衡化過(guò)程p為紅色,由原紅黑樹(shù)的特性知p有父節(jié)點(diǎn)g,p為g的左子女g為黑色,若g的右子女r為紅色則交換g和p,r的顏色若g已為執(zhí)行插入操作的紅黑樹(shù)的根節(jié)點(diǎn)則將g染黑此時(shí)由子樹(shù)u滿足條件B不難驗(yàn)證子樹(shù)g為紅黑樹(shù)于是結(jié)束平衡化過(guò)程 。若g不為執(zhí)行插入操作的紅黑樹(shù)的根節(jié)點(diǎn)由子樹(shù)u滿足條件B不難驗(yàn)證此時(shí)子樹(shù)g滿足條件B但g的顏色由黑變紅意味著g和其父節(jié)點(diǎn)有可能組成一對(duì)連續(xù)紅節(jié)點(diǎn)所以此時(shí)應(yīng)令ug pg的父節(jié)點(diǎn)回溯至上一層按所列各情形進(jìn)行相同的平衡化處理以消除可能出現(xiàn)的一對(duì)連續(xù)紅色節(jié)點(diǎn)這樣做是合理的因?yàn)榻粨Q顏色后的子樹(shù)g滿足條件B。p為紅色,由原紅黑樹(shù)的特性知p有父節(jié)點(diǎn)g,p為g的右子女g為黑色,若g的左子女r為紅色則同樣交換g和p,r的顏色和上一情形類似若g已為執(zhí)行插入操作的紅黑樹(shù)的根節(jié)點(diǎn)則將g染黑結(jié)束。若g不為執(zhí)行插入操作的紅黑樹(shù)的根節(jié)點(diǎn),則令ug pg的父節(jié)點(diǎn)回溯至上一層按所列各情形進(jìn)行相同的平衡化處理p為紅色,由原紅黑樹(shù)的特性知p有父節(jié)點(diǎn)g,p為g的左子女g為黑色,g的右子女r為黑色此時(shí)g做右單旋轉(zhuǎn)并交換p,g顏色然后由子樹(shù)u滿足條件B不難驗(yàn)證此時(shí)執(zhí)行插入操作的紅黑樹(shù)已恢復(fù)紅黑樹(shù)特性結(jié)束平衡化過(guò)程。p為紅色,p有父節(jié)點(diǎn)g,p為g的右子女g為黑色,g的左子女r為黑色此時(shí)對(duì)g先右后左雙旋轉(zhuǎn)并交換v,g顏色然后由子樹(shù)u滿足條件B不難驗(yàn)證此時(shí)執(zhí)行插入操作的紅黑樹(shù)已恢復(fù)紅黑樹(shù)特性結(jié)束平衡化過(guò)程。若u為p的右子女也有類似諸情形這些情形和以上對(duì)應(yīng)各情形保持對(duì)稱每一種情形和其對(duì)應(yīng)的以上情形相比顏色調(diào)整操作不便旋轉(zhuǎn)操作互為鏡像下面將這些情形及相應(yīng)的處理方式列出這些情形從上至下和上述情形從上至下保持對(duì)應(yīng)和對(duì)稱p為黑色已平衡結(jié)束p為紅色,由原紅黑樹(shù)的特性知p有父節(jié)點(diǎn)g,p為g的右子女g為黑色,若g的左子女r為紅色則交換g和p,r顏色,若g已為執(zhí)行插入操作的紅黑樹(shù)的根節(jié)點(diǎn)則將g染黑結(jié)束平衡化過(guò)程 。若g不為執(zhí)行插入操作的紅黑樹(shù)的根節(jié)點(diǎn)令ug pg的父節(jié)點(diǎn)回溯至上一層按所列各情形進(jìn)行相同的平衡化處理p為紅色,由原紅黑樹(shù)的特性知p有父節(jié)點(diǎn)g,p為g的左子女g為黑色,若g的右子女r為紅色則同樣交換g和p,r顏色然后若g已為執(zhí)行插入操作的紅黑樹(shù)的根節(jié)點(diǎn)則將g染黑結(jié)束。若g不為執(zhí)行插入操作的紅黑樹(shù)的根節(jié)點(diǎn),則令ug pg的父節(jié)點(diǎn)回溯至上一層按所列各情形進(jìn)行相同的平衡化處理p為紅色,由原紅黑樹(shù)的特性知p有父節(jié)點(diǎn)g,p為g的右子女g為黑色,g的左子女r為黑色此時(shí)g做左單旋轉(zhuǎn)并交換p,g顏色然后已平衡結(jié)束平衡化過(guò)程。p為紅色,p有父節(jié)點(diǎn)g,p為g的左子女g為黑色,g的右子女r為黑色此時(shí)對(duì)g先左后右雙旋轉(zhuǎn)并交換v,g顏色然后結(jié)束平衡化過(guò)程。從以上討論就可以看出循環(huán)不變量就是u子樹(shù)滿足的條件B由此可總結(jié)出紅黑樹(shù)的插入算法這里省略可自行分析。紅黑樹(shù)插入算法的具體實(shí)現(xiàn)請(qǐng)參考下方代碼。下面是實(shí)現(xiàn)紅黑樹(shù)插入與刪除操作的具體代碼(c),代碼中加入了判斷節(jié)點(diǎn)顏色非紅即黑的二叉樹(shù)是否為紅黑樹(shù)的函數(shù)用其在每次插入刪除成功后檢驗(yàn)插入刪除后的二叉樹(shù)是否仍為紅黑樹(shù)以判斷插入刪除算法的正確性#include string #include vector #include iostream #include stack #include random #include ctime using namespace std; #define TYPE int enum ColorFlag { RED, BLACK }; template typename T struct RBTreeNode { T data; //節(jié)點(diǎn)數(shù)據(jù)域 ColorFlag color; //節(jié)點(diǎn)顏色 RBTreeNode* left; RBTreeNode* right; RBTreeNode(T d, ColorFlag c) :data(d), color(c), left(nullptr), right(nullptr) {} }; template typename T void RotateLR(RBTreeNodeT* ptr) //對(duì)以ptr為根的子樹(shù)執(zhí)行先左后右雙旋轉(zhuǎn),ptr成為旋轉(zhuǎn)后新樹(shù)根節(jié)點(diǎn)指針 { RBTreeNodeT* p ptr-left; RBTreeNodeT* q p-right; p-right q-left; q-left p; ptr-left q-right; q-right ptr; ptr q; } template typename T void RotateRL(RBTreeNodeT* ptr) //對(duì)以ptr為根的子樹(shù)執(zhí)行先右后左雙旋轉(zhuǎn),ptr成為旋轉(zhuǎn)后新樹(shù)根節(jié)點(diǎn)指針 { RBTreeNodeT* p ptr-right; RBTreeNodeT* q p-left; p-left q-right; q-right p; ptr-right q-left; q-left ptr; ptr q; } template typename T void RotateR(RBTreeNodeT* ptr) //對(duì)以ptr為根的子樹(shù)執(zhí)行右單旋轉(zhuǎn),ptr成為旋轉(zhuǎn)后新樹(shù)根節(jié)點(diǎn)指針 { RBTreeNodeT* p ptr-left; ptr-left p-right; p-right ptr; ptr p; } template typename T void RotateL(RBTreeNodeT* ptr) ////對(duì)以ptr為根的子樹(shù)執(zhí)行左單旋轉(zhuǎn),ptr成為旋轉(zhuǎn)后新樹(shù)根節(jié)點(diǎn)指針 { RBTreeNodeT* p ptr-right; ptr-right p-left; p-left ptr; ptr p; } bool examineBlackHeight(bool TF, int preroadblacknum, const int blacknum) { if (TF false) { TF true; preroadblacknum blacknum; } else { if (preroadblacknum ! blacknum) { cout 從根節(jié)點(diǎn)到外節(jié)點(diǎn)的路徑上黑節(jié)點(diǎn)數(shù)目不等,非紅黑樹(shù) endl; return false; } } return true; } template typename T void addBlackNum(RBTreeNodeT* ptr, int blacknum) { if (ptr-color ColorFlag::BLACK) blacknum; } template typename T void reduceBlackNum(RBTreeNodeT* ptr, int blacknum) { if (ptr-color ColorFlag::BLACK) --blacknum; } template typename T bool isRB(RBTreeNodeT* root) //判斷以root為根的二叉樹(shù)是否為紅黑樹(shù)(已假定節(jié)點(diǎn)顏色不是為紅色就是為黑色) { if (root-color ColorFlag::RED) { cout 根節(jié)點(diǎn)不為黑色,非紅黑樹(shù) endl; return false; } struct memory { RBTreeNodeT* p; int direction; T lmin; memory(RBTreeNodeT* p, int d) :p(p), direction(d) {} }; T lmax; T rmin; T rmax; int d 0; RBTreeNodeT* ptr root; RBTreeNodeT* const dest ptr; stackmemory arrange; bool TF false; int blacknum 0; //統(tǒng)計(jì)路徑上黑節(jié)點(diǎn)個(gè)數(shù)的變量 int preroadblacknum 0; //當(dāng)前路徑的前一路徑上黑節(jié)點(diǎn)數(shù)目 while (true) { int result; if ((result Searchd(ptr, d)) 0) { if (ptr dest) { if (d 0) return true; } if (d 0) { addBlackNum(ptr, blacknum); if (examineBlackHeight(TF, preroadblacknum, blacknum) false) return false; if (arrange.top().direction 1) { arrange.top().lmin ptr-data; lmax ptr-data; } else { rmin ptr-data; rmax ptr-data; } } else { if (d 1) { if (lmax ptr-data) { cout 當(dāng)前樹(shù)非二叉搜索樹(shù),也非紅黑樹(shù) endl; return false; } if (ptr dest) return true; T lmin arrange.top().lmin; arrange.pop(); if (arrange.top().direction 1) { arrange.top().lmin lmin; lmax ptr-data; } else { rmin lmin; rmax ptr-data; } } else { if (rmin ptr-data) { cout 當(dāng)前樹(shù)非二叉搜索樹(shù),也非紅黑樹(shù) endl; return false; } if (ptr dest) return true; if (ptr-left nullptr) { arrange.pop(); if (arrange.top().direction 1) { arrange.top().lmin ptr-data; lmax rmax; } else rmin ptr-data; } else { T lmin arrange.top().lmin; arrange.pop(); if (arrange.top().direction 1) { arrange.top().lmin lmin; lmax rmax; } else rmin lmin; } } } reduceBlackNum(ptr, blacknum); ptr arrange.top().p; d arrange.top().direction; } else { RBTreeNodeT* interval nullptr; if (d 0) { if (ptr-color ColorFlag::RED) { if (result 2) { if (ptr-right-color ColorFlag::RED) { cout 在根節(jié)點(diǎn)到外節(jié)點(diǎn)的路徑上存在兩個(gè)連續(xù)紅色節(jié)點(diǎn),非紅黑樹(shù) endl; return false; } } else { if (ptr-left-color ColorFlag::RED || ptr-right ! nullptr ptr-right-color ColorFlag::RED) { cout 在根節(jié)點(diǎn)到外節(jié)點(diǎn)的路徑上存在兩個(gè)連續(xù)紅色節(jié)點(diǎn),非紅黑樹(shù) endl; return false; } } } else blacknum; if (ptr-left nullptr || ptr-right nullptr) { if (examineBlackHeight(TF, preroadblacknum, blacknum) false) return false; } arrange.push(memory(ptr, result)); if (arrange.top().direction 1) ptr ptr-left; else ptr ptr-right; } else { if (ptr-data lmax) { cout 當(dāng)前樹(shù)非二叉搜索樹(shù),也非紅黑樹(shù) endl; return false; } arrange.top().direction 2; ptr ptr-right; } d 0; } } } template typename T void linkWithUpper(RBTreeNodeT* parent, RBTreeNodeT* original, RBTreeNodeT* _new) { if (original parent-left) { parent-left _new; } else { parent-right _new; } } template typename T bool executeDelete(RBTreeNodeT* p, RBTreeNodeT* q) { p-data q-data; if (q-color ColorFlag::RED) //如果被刪節(jié)點(diǎn)為紅色,直接刪除即可 { delete q; return true; //已平衡返回根節(jié)點(diǎn) } if (q-right ! nullptr q-right-color ColorFlag::RED) //被刪節(jié)點(diǎn)右子樹(shù)根節(jié)點(diǎn)為紅色 //右子樹(shù)根節(jié)點(diǎn)染黑,刪除被刪節(jié)點(diǎn),紅黑樹(shù)恢復(fù)平衡,結(jié)束 { q-right-color ColorFlag::BLACK; delete q; return true; } //或被刪節(jié)點(diǎn)及其右子女均為黑色,直接刪除被刪節(jié)點(diǎn)//被刪節(jié)點(diǎn)為葉子黑節(jié)點(diǎn),直接刪除,子樹(shù)q滿足循環(huán)不變條件,向下進(jìn)入do-while循環(huán) delete q; return false; } template typename T RBTreeNodeT* executeDelete(RBTreeNodeT*p, RBTreeNodeT* root, RBTreeNodeT* stackforflashback_top, RBTreeNodeT* p_left_or_right) { if (stackforflashback_top ! nullptr) //被刪節(jié)點(diǎn)有父節(jié)點(diǎn) { if (stackforflashback_top-left p) stackforflashback_top-left p_left_or_right; //將被刪節(jié)點(diǎn)左子樹(shù)或右子樹(shù)鏈接至被刪節(jié)點(diǎn)父節(jié)點(diǎn)相應(yīng)鏈指針 else stackforflashback_top-right p_left_or_right; //被刪節(jié)點(diǎn)一定為黑其左子女一定為紅,左子女染黑,刪除被刪節(jié)點(diǎn),已平衡返回根節(jié)點(diǎn) } else //被刪節(jié)點(diǎn)為根節(jié)點(diǎn)且只有左子樹(shù)或只有右子樹(shù) root p_left_or_right; //直接刪除被刪節(jié)點(diǎn),左子女直接染黑,這樣左子樹(shù)為紅黑樹(shù),結(jié)束 p_left_or_right-color ColorFlag::BLACK; delete p; return root; } template typename T RBTreeNodeT* DelRB(RBTreeNodeT* root, T key) { //紅黑樹(shù)刪除 RBTreeNodeT* p root; stackRBTreeNodeT* stackforflashback; while (p ! nullptr) //搜索被刪除節(jié)點(diǎn),同時(shí)將回溯路徑記錄在棧中 { if (p-data key) break; else { stackforflashback.push(p); if (key p-data) { p p-left; } else { p p-right; } } } if (p ! nullptr) //被刪除節(jié)點(diǎn)存在,被p指向 { RBTreeNodeT* parent nullptr; RBTreeNodeT* q nullptr; if (p-left ! nullptr p-right ! nullptr) //被刪節(jié)點(diǎn)左右子樹(shù)均存在 { q p-right; parent p; if (q-left ! nullptr) //被刪節(jié)點(diǎn)右子樹(shù)根節(jié)點(diǎn)有左子樹(shù) { while (q-left ! nullptr) //在被刪節(jié)點(diǎn)右子樹(shù)根節(jié)點(diǎn)左子樹(shù)中搜索中序遍歷的第一個(gè)節(jié)點(diǎn),同時(shí)用棧記錄回溯路徑 { stackforflashback.push(parent); parent q; q q-left; } parent-left q-right; //用該節(jié)點(diǎn)數(shù)據(jù)域替換被刪節(jié)點(diǎn)數(shù)據(jù)域,將其右子樹(shù)鏈接至其父節(jié)點(diǎn)左鏈指針 if (executeDelete(p, q)) return root; q parent-left; //parent為需要做或不做平衡化旋轉(zhuǎn)及顏色調(diào)整的第一棵子樹(shù)根節(jié)點(diǎn)指針,q為該子樹(shù)左子樹(shù)根節(jié)點(diǎn)指針 } else { p-right q-right; //用被刪節(jié)點(diǎn)右子女?dāng)?shù)據(jù)域替換被刪節(jié)點(diǎn)指針域,將右子女右子樹(shù)鏈接至被刪節(jié)點(diǎn)右鏈指針 if (executeDelete(p, q)) return root; q p-right; //parent為需要做或不做平衡化旋轉(zhuǎn)的第一棵子樹(shù)根節(jié)點(diǎn)指針,q為該子樹(shù)左子樹(shù)根節(jié)點(diǎn)指針 } } else { if (p-left ! nullptr) //被刪節(jié)點(diǎn)左子樹(shù)不空,右子樹(shù)空 return executeDelete(p, root, stackforflashback.empty() ? nullptr : stackforflashback.top(), p-left); if (p-right ! nullptr) //處理過(guò)程和以上情形完全對(duì)稱{ return executeDelete(p, root, stackforflashback.empty() ? nullptr : stackforflashback.top(), p-right); //被刪節(jié)點(diǎn)為葉節(jié)點(diǎn) if (stackforflashback.empty()) { delete p; //被刪葉節(jié)點(diǎn)為根節(jié)點(diǎn),直接刪除,結(jié)束 return nullptr; } parent stackforflashback.top(); //被刪葉節(jié)點(diǎn)有父節(jié)點(diǎn) stackforflashback.pop(); if (parent-left p) parent-left nullptr; else //將葉節(jié)點(diǎn)的父節(jié)點(diǎn)對(duì)應(yīng)指針域置空 parent-right nullptr; q nullptr; if (p-color ColorFlag::RED) { delete p; return root; } delete p; //被刪葉節(jié)點(diǎn)為黑,直接刪除,此時(shí)q為需要做或不做平衡化旋轉(zhuǎn)和顏色調(diào)整的第一棵子樹(shù)根節(jié)點(diǎn)指針,q子樹(shù)滿足循環(huán)不變條件,向下進(jìn)入do-while循環(huán) } enum class condition_be_processed {C1, C2, C3, C4, C5, C6, C7, C8, C9, _C1, _C10, _C3, _C4, _C5, _C6, _C7, _C8, _C9} distinguish; bool TF false; do //do-while循環(huán)所做工作是,從滿足循環(huán)不變條件的第一棵子樹(shù)起,沿父節(jié)點(diǎn)到第一棵子樹(shù)根節(jié)點(diǎn)的路徑向上平衡化旋轉(zhuǎn)或調(diào)整顏色,直到原紅黑樹(shù)重新恢復(fù)平衡為止 { if (TF true) { linkWithUpper(stackforflashback.top(), q, parent); if (q-color ! ColorFlag::RED) return root; q parent; parent stackforflashback.top(); stackforflashback.pop(); } else TF true; if (parent-right q) { p parent-left; if (parent-color ColorFlag::RED) { if (p-left ! nullptr p-left-color ColorFlag::RED) distinguish condition_be_processed::C1; else if(p-right ! nullptr p-right-color ColorFlag::RED) distinguish condition_be_processed::C2; else distinguish condition_be_processed::C3; } else { if (p-color ColorFlag::BLACK) { if (p-left ! nullptr p-left-color ColorFlag::RED) distinguish condition_be_processed::C4; else if (p-right ! nullptr p-right-color ColorFlag::RED) distinguish condition_be_processed::C5; else distinguish condition_be_processed::C6; } else { q p-right; if (q-left ! nullptr q-left-color ColorFlag::RED) distinguish condition_be_processed::C7; else if (q-right ! nullptr q-right-color ColorFlag::RED) distinguish condition_be_processed::C8; else distinguish condition_be_processed::C9; } } } else { p parent-right; if (parent-color ColorFlag::RED) { if (p-right ! nullptr p-right-color ColorFlag::RED) distinguish condition_be_processed::_C1; else if (p-left ! nullptr p-left-color ColorFlag::RED) distinguish condition_be_processed::_C10; else distinguish condition_be_processed::_C3; } else { if (p-color ColorFlag::BLACK) { if (p-right ! nullptr p-right-color ColorFlag::RED) distinguish condition_be_processed::_C4; else if (p-left ! nullptr p-left-color ColorFlag::RED) distinguish condition_be_processed::_C5; else distinguish condition_be_processed::_C6; } else { q p-left; if (q-right ! nullptr q-right-color ColorFlag::RED) distinguish condition_be_processed::_C7; else if (q-left ! nullptr q-left-color ColorFlag::RED) distinguish condition_be_processed::_C8; else distinguish condition_be_processed::_C9; } } } if (distinguish condition_be_processed::C1 || distinguish condition_be_processed::_C1 || distinguish condition_be_processed::C2 || distinguish condition_be_processed::_C10) { q parent; parent-color ColorFlag::BLACK; if (distinguish condition_be_processed::C1 || distinguish condition_be_processed::_C1) { p-color ColorFlag::RED; if (distinguish condition_be_processed::C1) { p-left-color ColorFlag::BLACK; RotateR(parent); } else { p-right-color ColorFlag::BLACK; RotateL(parent); } } else { if (distinguish condition_be_processed::C2) RotateLR(parent); else RotateRL(parent); } } else if (distinguish condition_be_processed::C3 || distinguish condition_be_processed::_C3) { parent-color ColorFlag::BLACK; p-color ColorFlag::RED; return root; } else if (distinguish condition_be_processed::C4 || distinguish condition_be_processed::_C4) { q parent; if (distinguish condition_be_processed::C4) { p-left-color ColorFlag::BLACK; RotateR(parent); } else { p-right-color ColorFlag::BLACK; RotateL(parent); } } else if (distinguish condition_be_processed::C5 || distinguish condition_be_processed::_C5) { q parent; if (distinguish condition_be_processed::C5) { p-right-color ColorFlag::BLACK; RotateLR(parent); } else { p-left-color ColorFlag::BLACK; RotateRL(parent); } } else if (distinguish condition_be_processed::C6 || distinguish condition_be_processed::_C6) { q parent; parent-color ColorFlag::RED; if (distinguish condition_be_processed::C6) RotateR(parent); else RotateL(parent); } else if (distinguish condition_be_processed::C7 || distinguish condition_be_processed::_C8) { q-left-color ColorFlag::BLACK; q parent; if (distinguish condition_be_processed::C7) RotateLR(parent); else { RotateR(p-left); RotateRL(parent); } } else if (distinguish condition_be_processed::_C7 || distinguish condition_be_processed::C8) { q-right-color ColorFlag::BLACK; q parent; if (distinguish condition_be_processed::_C7) RotateRL(parent); else { RotateL(p-right); RotateLR(parent); } } else if (distinguish condition_be_processed::C9 || distinguish condition_be_processed::_C9) { p-color ColorFlag::BLACK; q-color ColorFlag::RED; q parent; if (distinguish condition_be_processed::C9) RotateR(parent); else RotateL(parent); } } while (stackforflashback.empty() false); parent-color ColorFlag::BLACK; return parent; } else { cout 紅黑樹(shù)中不存在要?jiǎng)h除的數(shù)據(jù)元素,刪除失敗 endl; return nullptr; } } template typename T RBTreeNodeT* InsertRB(RBTreeNodeT* root, T key) { //紅黑樹(shù)插入 if (root nullptr) return new RBTreeNodeT(key, ColorFlag::BLACK); else { stackRBTreeNodeT* stackforflashback; RBTreeNodeT* p root; while (p ! nullptr) //搜索插入位置 { stackforflashback.push(p); if (key p-data) p p-left; else if (key p-data) p p-right; else { cout 要插入的關(guān)鍵字在AVL樹(shù)中已存在,插入失敗 endl; return nullptr; } } if (key stackforflashback.top()-data) { p stackforflashback.top()-left new RBTreeNodeT(key, ColorFlag::RED); } else { p stackforflashback.top()-right new RBTreeNodeT(key, ColorFlag::RED); } enum class condition_be_processed {L1, L2, L3, _L1, _L2, _L3}distinguish; RBTreeNodeT* q nullptr; RBTreeNodeT* g nullptr; while (stackforflashback.empty() false) //從第一棵滿足循環(huán)不變條件的子樹(shù)(就是新插入的節(jié)點(diǎn))開(kāi)始逐步向上調(diào)整顏色或進(jìn)行平衡化旋轉(zhuǎn),直到原紅黑樹(shù)重新恢復(fù)平衡為止 { if (g ! nullptr) { if (g-color ColorFlag::BLACK) { linkWithUpper(stackforflashback.top(), p, g); return root; } else p g; } q stackforflashback.top(); //進(jìn)入新一輪循環(huán)后p為滿足循環(huán)不變條件的子樹(shù)的根節(jié)點(diǎn),stackforflashback棧頂指針為其父節(jié)點(diǎn)指針 stackforflashback.pop(); if (q-color ColorFlag::BLACK) return root; g stackforflashback.top(); stackforflashback.pop(); if (q g-left) { if (g-right ! nullptr g-right-color ColorFlag::RED) distinguish condition_be_processed::L1; else if (p q-left) distinguish condition_be_processed::L2; else distinguish condition_be_processed::L3; } else if (g-left ! nullptr g-left-color ColorFlag::RED) distinguish condition_be_processed::_L1; else if (p q-left) distinguish condition_be_processed::_L2; else distinguish condition_be_processed::_L3; g-color ColorFlag::RED; if (distinguish condition_be_processed::L1 || distinguish condition_be_processed::_L1) { q-color ColorFlag::BLACK; if (distinguish condition_be_processed::L1) g-right-color ColorFlag::BLACK; else g-left-color ColorFlag::BLACK; } else if (distinguish condition_be_processed::L2 || distinguish condition_be_processed::_L3) { q-color ColorFlag::BLACK; p g; if (distinguish condition_be_processed::L2) RotateR(g); else RotateL(g); } else if (distinguish condition_be_processed::_L2 || distinguish condition_be_processed::L3) { p-color ColorFlag::BLACK; p g; if (distinguish condition_be_processed::_L2) RotateRL(g); else RotateLR(g); } } g-color ColorFlag::BLACK; return g; } } template typename T int Searchd(RBTreeNodeT* ptr, int d) { if (d 2) return 0; else { if (d 1) { if (ptr-right nullptr) return 0; else return 2; } else { if (ptr-left ! nullptr) return 1; else { if (ptr-right ! nullptr) return 2; else return 0; } } } } template typename T void output(RBTreeNodeT* ptr) //輸出以ptr為根的紅黑樹(shù)對(duì)應(yīng)的廣義表形式 { struct memory { RBTreeNodeT* p; int direction; int last; memory(RBTreeNodeT* p, int d, int l) :p(p), direction(d), last(l) {} }; int d 0; RBTreeNodeT* const dest ptr; stackmemory arrange; while (true) { if (Searchd(ptr, d) 0) { if (ptr dest) { if (d 0) cout ptr-data (; else { if (arrange.top().last 1) cout , ; } cout ); break; } else { if (d 0) { if (arrange.top().last 0) { if (arrange.top().direction 1) { cout ptr-data; arrange.top().last 1; } else { cout , ptr-data; arrange.top().last 2; } } else { cout ,; cout ptr-data; arrange.top().last 2; } } else { if (arrange.top().last 2) cout ); else { cout , ); } arrange.pop(); } ptr arrange.top().p; d arrange.top().direction; } } else { RBTreeNodeT* interval nullptr; if (d 0) { if (arrange.empty() false) { if (arrange.top().last 0) { if (arrange.top().direction 1) { cout ptr-data (; arrange.top().last 1; } else { cout , ptr-data (; arrange.top().last 2; } } else { cout ,; cout ptr-data (; arrange.top().last 2; } } else { cout ptr-data (; } arrange.push(memory(ptr, Searchd(ptr, d), 0)); if (arrange.top().direction 1) interval ptr-left; else interval ptr-right; } else { arrange.top().direction 2; interval ptr-right; } d 0; ptr interval; } } } int main() { const int N 1000; //vectorTYPE insertvalue{ 13, 2}; vectorTYPE insertvalue; for (int i 1; i N; i) { insertvalue.push_back(i); } shuffle(insertvalue.begin(), insertvalue.end(), default_random_engine()); RBTreeNodeTYPE* root nullptr; for (vectorTYPE::const_iterator p insertvalue.cbegin(); p ! insertvalue.cend(); p) { root InsertRB(root, *p); cout 插入 *p endl; //output(root); cout endl; if (isRB(root) true) { cout 當(dāng)前樹(shù)是紅黑樹(shù); cout endl; } else { cerr 錯(cuò)誤當(dāng)前樹(shù)不是紅黑樹(shù)! endl; exit(0); } } cout endl; //cout 插入完成后刪除前紅黑樹(shù)對(duì)應(yīng)的廣義表形式為: endl; //output(root); cout endl; cout endl; for (vectorTYPE::const_iterator p insertvalue.cbegin(); p ! insertvalue.cend(); p) { cout 刪除節(jié)點(diǎn) *p endl; root DelRB(root, *p); if (root ! nullptr) { //output(root); cout endl; if (isRB(root) true) { cout 當(dāng)前樹(shù)是紅黑樹(shù); cout endl; } else { cerr 錯(cuò)誤當(dāng)前樹(shù)不是紅黑樹(shù)! endl; exit(0); } } else cout NULL; cout endl; } return 0; }
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
99国产精品在线观看| 超碰久草| 波多野结衣AV无码一区| 亚洲欧美日韩电影网站一区| 色999亚洲人成色| 大逼色网站| 五月丁香激情啪啪| 操91| jk白丝没脱就开始啪啪| 亚州欧美另类| 欧美极品色| 日本午夜福利视频| 亚洲一区二区三区婷婷| 久热伊人| 欧美亚洲韩国视频十五区| 中文字幕一区二区免费在线| n1038 一二三区| 蜜臀99久| 91大神电影天堂| 超碰欧美97| 免费观看有码高清视频| 欧美性暴力| 操碰91| 色97国产69香蕉| 一本一道波多野毛片中文在线| 4141514逼喷水三级片| 天操天操夜操夜月操月年年操操| 99久热| 中文字幕一区二区三区人妻不卡| 少妇二级| 亚洲成人贴图| 毛片视频白嫩| 亚洲一区在线观看欧洲| 丝袜熟女2P| 91麻豆天美传媒在线| 静品嫩模一区二区| 老熟女91| 中文字幕版| 按摩中文字幕| 免费家庭乱伦视频| 国产欧美黑人丰满在线| 婷婷久久综合久| 青草精品视频一日本久久久久网站| 欧洲熟妇xxXx欧美老妇裸体 | 亭亭丁香激情| 俄罗斯一区二区视频在线观看| 欧美少妇第一页| 国产精品96| 欧美亚综合色图| 亚洲人妻在线精品| 欧美亚洲成人在线一区二区三区| 玖玖爱在线视频免费观看| 九九成人精品| 免费A V在线播放| 久热精品在线| 99热这里是精品| 久久久久99999| 日日夜夜草草草| 97久操| 伊人四虎综合| 亚洲 综合 第一页| 天天日少妇逼AV| 婷婷五月天色| 中文字幕乱码人妻一区二区三区,99精品 | 啊啊啊啊啊在线| 内射中国少妇高清视频免费视频| 中文字幕78| 精品9区| 搡老女人老91妇女熟女| 欧洲亚洲人人爽爽视频| av影院十区| 国内一级精品| 日本成人A片网站| 国产精品亚洲一级av第二区| 伊人网综合在线视频| 欧美日韩国产色图在线| 九月丁香婷婷| 伊人aaa| 啊啊啊啊啊啊啊在线| 亚洲精品久久久久久| 国内一级精品| 国产传媒午夜理伦精品| 97国产成人精品免费视频| 亚洲色图久久成人| 97天天在线| 综合 亚洲 欧美| 一区操逼日比视频| 国产精品色| 97视频7| 日日噜噜夜夜久久亚洲一区二区| 亚洲资源一区| 97精品一区二区视频| 成人乱人伦一区二区| 欧美强奸一区二区诱惑| 高清不卡一二三区视频......| 欧洲精品在线播放| 欧美性爱第一页久久| 黑人黄片在线免费观看| 国产精品午夜成人福利| 日本幼女18+| 操死我了嗯嗯嗯| 淫荡网址| 一牛影视成人片免费| 色欲久久综合| 亚洲国产青青| av网页一区二区三区| 九九热超碰| 蜜桃久久久久久久久久久久| 91久久久久久久久18| 最新三级网址| juliaann精品熟女一区| 中文字幕熟女人妻丝袜| 丰满少妇乱子伦精品无| 91成人国产综合久久精品蜜月| 可乐操亚洲蜜911| 91在线秘 男同| 欧美日日网| 9精品久久久久| 男人的天堂一区三区| 熟妇视频一区二区三区在线观看| 91性色| 欧美麻豆成人同性GⅤ在线| 蜜臀精品1区2区| 超碰超碰超碰超碰的大鸡吧操黑丝袜 | 色在线视频导航| 影音先锋国产精品| 久9爱精品| 人人摸人人添人人操| 91女神在线视频| 国产成人在线观看网址| 久久激情网| 九九久久国产精品怡红院| 极品尤物女神在线观看| 东北操逼| 岛国在线一区二区三区| 大香蕉一人在线| 久久国产免费激情视频| 欧洲一区二区三区四区在线观看| 中国大陆国产高清AⅤ毛片| 婷婷丁香一区二区三区| 男女性感激情网站| 久久线上视频免费看| 亚洲精品亚洲人成在线麻豆| 青青草久久在线| 欧美日韩操逼动图| 91痴汉| 免费看久久久性性| 欧美超碰在线| 丁香激情网| 91n处女在线观看| 欧美在线干| 亚洲欧美伦综合| 夜夜爽33333| 白丝AV| 9/A片 | 久久精品国产精品一区| 97久久超碰国产网站| 国产视频一区二区三区在线免费观看| 久久综合中文国产| 思思热国产在线视频| 精品免费国产二区三区| 国产美女mm131爽爽爽爽| 亚洲美腿丝袜香蕉影视欧美成人| 色播五月丁香| 国产乱色国产精品免费视| 免费97视频| 超碰成人最新最好看| 亚洲素人综合| 夜夜高潮夜夜爽高清视频一 | 亚洲激情综合另类男同| yazhouzaixian| 精品国产嫩穴视频| AV不卡在线| 有码专区最新中文字幕有码| 婷婷情色综合网| 国产亚洲精品A在线观看下载| 97自拍一区| 色婷久久| 黑人黄片在线免费观看| 奶水 人妻 哺乳 在线| 青青久操| 青青草原人妻| 蜜乳AV网址| 97超碰中文在线| 日韩精品怡红院| 国内精品久久久久影院亚洲| 最新av中文字幕高清| 欧美视频激情久久久久久| 天天干天天狼在线视频| 中文字幕精品一区二| 日本国产二线女色| 天美久久久久| 91青青| 曰本91情色| 亚洲九九夜夜| 日韩av影片在线观看| 日韩成人精品| 免费啪啪av| 亚洲丝袜综合| 精品人妻久久久| 超碰一区二区| 欧美一区二区传媒| 亚洲图片欧美日韩| 精品久热| 天美AV片| 日韩中字av一区| 色婷婷久久| 亚洲图片色图欧美另类| 欧美日韩亚洲一区二区在线观看| 在线人成亚洲视频免费观看| 免费操逼91| 9Ⅰ超碰| 99超碰网| 欧美日韩人妻婷婷一区| 午夜精品久久久99| 久久人妻97久久久久久久| 五月综合久久| 91在线视频免费中出| 美女露胸露尿口| 丰满人妻一区二区三区免费,| 国产超碰人人操| 五月婷久久| 99在线观看| 欧美色五月| 国产精品乱人伊人网| www.夜夜| 天天影视色香色欲| 97欧美精品综合| 97色插| 东京太热久久久| 美女露胸露尿口| 国产原创自拍| 97色色色综合网站| 亚洲日韩熟女人妻高清在线| 日韩精品一区,二区 九九...老司机| 欧美激色| 夜夜高潮夜夜爽夜夜爱爱一区| 青青操在线视频| 久操免费电影| 91丝袜在线播放| 视频一区二区免费在线| 日本爽爽爽爽爽爽免费视频| 极品色| 肥臀熟女一区二区三区视频| 欧美夜夜| 久久国产热视频97电影| 久久婷婷亚洲| 久久大香蕉手机高清| 成人熟女视频一区二区三区| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 99无码精品| 夜夜嗨一区二区| 欧美中字二区| 国产精品久久久亚洲第一牛牛_在线观看 | 91|九色|国产熟女| 日韩乱码Av| 97色诱| 天操天操夜操夜月月年年操操| 麻豆黄站| 风月影院十八禁| 99这里只有精品国产| 在线视频日韩欧美国产| 九九九午夜| 伊人久久亚洲色欲综合网站 | 1二区9| 91亚洲人| 亚洲国产成人精品无码专区| 午夜呻吟欧美| 欧洲人妻视频| 图片区小说区| 好爽免费视频,| 久久久久久亚洲Av无码精| 国产日韩欧美三级片| 人妻天天夜夜爽一区二区| 国产传媒av天美传媒在线| 久久久久久免费电影| 大吊色| 日韩一区二区精品视频| 国产精品视频白浆免费| 激情网色| 岛国在线一区二区三区| 亚洲色图尤物视频| 亚洲中文字幕在线视频一区二区| 日比av无码| 日韩色图 一区二区| 久久综合女优| 日日妻色网| 欧美乱妇狂野欧美在线视频| 欧美激情色婷婷花野真衣一区二区| 青久操| 亚洲精品天天影视综合网| 一区二区 韩日AV| 亚洲中文字母在线播放| 青娱乐久久艹| 中文字幕精品一区二区精| 欧美一级AAAAAAA| 久久精品一区二区一8| 深夜国产福利| 黄色片A级一区二区三区| 日韩无码极品| 午夜小电影在线插入淫高潮| 成人免费性爱视视| 在线观看不卡一区二区三区| 日韩欧美成人午夜福利| 3028国产精品| 四色永久成人网站| 俺去也婷婷| www.激情| 久久欲| 日语五十路和六十路亚洲国产精品| 久久国产乱子伦精品免费女,网站| 果冻传媒A片麻豆熟妇人妻| 久久久涩| 极品销魂美女一区二区 | 麻豆国产成人精品| 五月天精品| 黑人性暴力毛片| 91熟女丨91老女人| 另类图片欧美激情综合| 久久国产性爱| 黄色av一区二区在线| 亚洲黄网在哪免费看| 伊人婷婷五月天| 无码91| 北条麻妃性愛视频| 91激情国产| 亚洲欧美黄| 久久久999| 美女熟妇色| 人妻中文字幕日韩电影| 日韩熟妇二区| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 欧美一区二区一级岛国大片| 亚洲乱码国产乱码精网站| 黄网在线播放| 老熟女熟妇| 四虎影视永久在线观看精品免费网站| 97爱综合| 国产区91柔拿会所技师| 天天欧美色| 乱伦a片视频| 人、人、摸,人、人、草| 96AV精品| 天天干1区2区在线| 男女无套 免费网站| 日韩Va亚洲va欧美Ⅴa久久| 青青草日韩无码| 五月天色电影| 蜜臀99久久精品久久久久| 91人妻最真实刺激绿帽| 人妻少妇精品一区二区三区| 97色涩| 色综91| 精品国产人成在线| 操美女人妻| 漂亮人妻被强中文字幕hd| 黄色视频高清无码网站| 女优免费一区二区永久| 无卡一区=区| 亚洲精品一区二区精华| 开心五月激情网| 亚洲视频二区 | 超碰诱惑| 亚洲偷拍自拍在线视频| 欧美激情片一区二区| 啊啊啊爽爽| 国产小视频91| 啊啊啊好大好湿| 97精品网| 天天日天天色| 超碰偷拍| 午夜男人一级A片7777| 四虎国产成人精品免费一女五男| 97在线免费视频| 国产精品99久久久www| 欧洲亚洲国产综合在线| 无码9区| 国产乱码久久久| 久久riav中文精品| 97国产色图 | 深夜激情| 性爱av在线免费观看| 亚洲综合图文| 国产在线综合网| 亚码激情| 骚货| 色香色欲天天综合网天天来吧| 99久久久无码精品国产人| 84YTCOM性无码| 91综合色噜噜| 日韩欧美午夜一区二区| 黑人操一区二区| 乱伦日本色图AⅤ| 亚洲最大的综合性av| 日韩无码黄色片| 精品国产丝袜一区二区三区乱码| 亚洲黄色网址视频| www色日本| 精品久久久亚洲AV成人网站| 91在线美女| 吉田爱美AV在线| 乱子伦一区二区三区国产精品| 熟女网站最新| 精品无码少妇| 一区在线精品中文字幕| 一级人妻性爱视频| 亚洲一区二区精品福利| 精品少妇一区二区三区免费观看| 青青草久久一区网| 乱操9999| 一区二区乱码福利| 26UUU欧美激情一区二区| 国产亚洲日韩在线三区黑人| 日本三级中国三级99人妇网站| 超碰亚洲97| 久久熟妇五十路一区| 午夜后入| 亚洲狠| 国产精品懂色tv影视免费观看| 青娱乐福利99| 在线看免费无码AV天堂的| 蜜桃久久一区二区三区| 亚洲视频小说| 啊啊啊好大好深| 最新国内自拍av免费| 操比国产| AV老汉| 精品久久久久成人码免| 国产在线观看一区二区三区| 日本人人操人人操| 亚洲。日韩。欧美| 91第一页| 无码聚合| 青青操在线亚洲视频观看欧美在线 | 国产欧美日韩臀| 欧美亚洲另类在线蜜桃| 日本爽爽爽爽爽爽免费视频| .精品人妻一区二区三| 综合天天网| 黄色大片免费在线| 日本熟妇人妻一区二区三区| 中文字幕免费观看| 混色激情av| 亚洲欧美日韩免费观看| 久草久日| 亚洲综合113页| 91丨九色丨国产丨人妻在线| 狠狠色五月亚洲91| 日韩懂色网| 一区二区三区免费岛国片| 另类图片综合| 熟女天天干| 国产亚洲在线观看| 日本精品第一视频在'| 97超碰站| 中文字幕人妻资源在线| 97欧美在线| 亚洲资源站| 青青草在线视频播放器| 国产后入清纯| 91欧美丨精品丨入口| 91中文精品日韩欧美在线 | 麻豆天美电影一区二区| 久久乐| 中文字幕在线观看丝袜| 欧美日韩国产在线| 国产精品肉丝自拍| 东北女人| 午夜九九九九九九| 91免费看一区二区三区| 亚洲一区日韩精品| 隔壁邻居波多野结衣中文字幕| 国内精品a| 一级特级aaaa毛片免费观看 | 色哟哟-国产专区| 亚洲色图加勒比| 无码操逼天堂| 免费AV中文网在线观看| 免费亚洲黄色视频在线观看| 免费看欧美美女黄色大片| 婷婷五月天激情小说| 日本不卡卡一区| 97久久免费| 超碰久草| 日韩免费av片高清无码| 国产高清在线观看欧美| 99自拍视频在线| 在线天堂999| 高精欧美色| 成 人片 黄色大片| 蜜桃久久久久久久| 91情色| 色婷婷小说| 亚洲和欧美裸体美女双飞视频| 欧美,日韩,中文,另类| 狼狼色丁香久久婷婷综合五月| 日本在线不卡v二区| 青青操97| 超碰97人人cao| 五月婷婷五月天| 九久久精品| 久久久久亚洲AV无码专区少妇| 婷婷五月天AV| 国产超碰欧美| av九九| 后入式免费视频| 欧美色偷拍| 日韩成人人妻网站| 久久久麻豆精品| 东北老女人的激情视频| 亚洲资源站| 日本综合久久| 果冻传媒A片麻豆熟妇人妻| 久久精品美女一区| 97这里有精品| 麻豆AV96熟妇人妻| 午夜福利免费精品视频| 欧美少妇色图| 久久免费少妇| 操亚州| 日韩一级成人毛片免费观看| 97 国产精品| www.99视频| 美国日韩黄片| 神马久久久久久久久| 丁香五月激情五月| 国产一区二区三区视频在线看| 国产精品69久久久久久久| 久久久国产成人一区二区三区在线| 少好三P| 中文字幕啊啊啊在线观看视频| 香蕉人欧美综合| 美女人妻色网站| 97资源视频| 夜夜春夜夜操| 91精品久久久久久77777| 超碰97精品| 免费网色网站| 91久久久久久| 草莓精品视频| 韩国一级AAA| 91久久久久久久久18| 久久日本熟妇熟色高清| 人妻精品一区二区全免费| 99亚洲天堂| 日韩性爱网址| 欧亚成人| 囯产操逼片| 日韩免费簧片| 好色综合| 欧美熟妇色| 东京热伊久| 男人的天堂久久狠| 天堂精品小草| 99蜜桃臀久久久欧美精品网站| 欧美日韩婷婷中文| 99蜜桃臀亚洲成人在线观看| 97超碰热线| 欧美色天堂网在线视频| 亚洲区限制级| 日本免费一区二区不卡| 超碰97人人乐| 天天天干977| 亚洲欧美综合网站| 美女诱惑久久| 国产精品福利资源在线尤物| 91一区二区三区蜜桃| 欧美在线永久天堂| 天堂а√在线最新版在线| 天天操夜夜嗨| 高清无码网址| 夜草欧美| 亚洲高潮影院| 少妇厨房愉情理伦片bd在线观看| 欧美偷拍区| 1769成人国产精品视频| 国产精品嫩草影院免费| 另类小说综合网| 国产原创自拍| 免费a v| 久久久久久久久久久久黄色| 在线岛国新天堂8| 欧美熟爽综合| 91亚洲网| 久久亚洲欧美一区二区三区-亚洲国产精品第一区二区 | 91视频观看网站| 成人黄页| 国产91影院| 国产操伦| 五月婷视频| 亚洲精品天天影视综合网 | 精产品久久| 一起草日韩| 日日夜夜狠狠| 欧美啪啪天堂| 日韩精品免费高清视频在线| 韩日男人的天堂| 人妻久久| 色色色色网站| 中文字幕 av v| 97资源站国产精品| 女人午夜视频777| 亚洲天堂第一页| 久久大黄片| 激情专区综合| 国内外毛片在线观看| 能在线播放的国产三级| 超碰97欧美日韩| 五十路六十路七十路熟婆| 26uuu欧美| aV中文麻| 国产久久久9999| 久久男人的天堂| 国产激情视频在线观看| 丰满少妇精品一区二区| 国产一级αv免费看片| 大屁股熟女一区二区三区| 操逼啊啊啊91| 91情色在线| 五月天婷婷影院| 色嗨嗨在线| 超碰97欧美在线| 不卡av在线中文字幕| 91精品操美女| 国产高清不卡视频| 国产精品熟女乱伦| 三级激情网站| 九九九九国产| 天天碰久久入| A男人的天堂| 麻豆蜜桃视频在线观看| 亚洲欧美日韩精品久| 伊人热综合| 夜夜夜爽www精品视频| 操B久久| 殴美,日韩国产伦精品| 国产呦精品一区二区三区下载| 亚洲在线欧美| 九九热re99re6在线精品| 级品肉射| 骚女高跟AV在线| 欧美久久久15P| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 日韩精品一区二区日韩| 国产精品久久aV| 人人妻人人玩人人澡人人爽| 青青草在线视频播放器| 日产成人久久| 亚洲图片视频小说| 色天天野狼综合社区| 加勒比久久av| 欧美亚洲韩国视频十五区| 偷拍亚洲高清图片| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 人人爱夜夜爱| 麻豆 亚洲 97| 久久风骚城市人| 婷婷国产精品一区二区| 精品视频一二三中文| 淫荡网址| 日韩精品中文字幕一| 国产亚洲日韩在线三区黑人| 国产精品干干干| 国产精品成人蜜臀AV在线| 熟妇高潮一区二区免费视频| 丝袜美腿91| 国产福利影视| 热思思免费视频| 丰满人妻一区二区三区蜜桃视频| 人伦四五区| 蜜桃中文字日产乱幕4区| 亚洲操操| 91人妻视频在线| 日本一二三高清| 国产视频第2页| 欧美亚洲韩国视频十五区| 干B网| 蜜臀久久99精品久久久久久婷婷| 日本Suv精品一区二区| 国语精品av| 深喉吞精| 美国日韩黄片| 国产剧情AV不卡在线观看| 国产精品无码在线| 狠狠干狠狠干| 美女97超碰| 天天日天天干天天摸天天操| 国产强奸乱伦欧美| 亚洲五月婷| 欧美精品在线观看| 欧美一二三区四五区| 性爱AV天堂| 96麻豆精品一区二区三区| 天天干天天燥| 999国产精品999| 日本免费一区二| 久久6热精品99视频| 四虎av在线| 中日亚韩免费视频| 蜜臀av一区二区三区免费观看| 亚洲自拍一区夜夜操| 久久超碰com| 屁屁影院一区二区三区国产| 嫩草影院永久在线制服丝袜| 久久久久久久久久va| 夜夜嗨一区二区| 啊啊啊轻点在线观看| 日本精品无码三级网站| 九九九久久久久| 无码直播久久久| 久久国产精品91| 性91| 日韩pv中文| 国产精品国产精品国产| 日本一二区免费| 97视频新免费| 国产成年女人免费视频播放a| 熟妇高潮一区二区免费视频| 91丝袜| 欧美成人9797| 天天上日日上日韩精品| 射欧美综合| 国产强奸超碰AV| 日韩欧美麻豆| 91狠狠综合久久| 亚州色阁| 日本午夜久久电影| 91 综合网| oumeisetu综合| 亚洲欧美日韩免费观看| 色九九九综合| 久久精品性| 亚洲视频精选| 在线视频一区二区传媒| 黄片www.| 国产操逼网站亚洲一级黄色| 五月天综合网| 操操碰| 亚洲高清无毛一区二区| 欧美人妻熟女在线| 国产不卡中文字幕免费avi| 久久人人看| 欧美中文字幕日韩在线| 蜜臀在线网站| 91熟女.com| 91亚洲丝袜| 吉田爱美AV在线| 九九综合| 久99| 欧美日韩国产高清在线一二三区| 韩日欧亚a级| 天天综合网~91综合网| 日韩人妻网站| 性感女人网页在线观看视频| 亚洲黄色影视| 乱伦av.com| 午夜激情成人在线观看| 亚洲精品97| 国产高清自拍视频| 亚洲综合第一页| 国产品精品自在在线午夜免费 | 性爱边摸边日免费AV| 日韩在线欧美精品一区二区| 色吧5亚洲| 欧美激情综合| 内射夫妻三片| 日韩美女啪啪一区| 国产极品99热在线播放69| 老熟妇一区二区三区…| 福利在线观看一区二区| 黄页视频网站野外| 中日高清无码操逼视频| 男人的天堂2019AV| 97色爱| 91N综合网在线| 国产精品黑人一区二区三区| 亚洲熟女综合网| 欧美99999| 国产精品福利资源在线尤物| 久久无码成人| 日本岛国黄色网址| 91久久精品蜜臀| 亚洲三级网址久久最新| 日日干男人的天堂| 日韩无码服务区| 蜜乳成人AV| 久久香蕉国产线看观看猫咪av| 91一区二区| 嗯嗯啊好大| 欧美精品三区| 大JI巴好深好爽又大又粗视频| A一区片| 五月婷婷影院| 97se综合| 日本国产亚洲一区在线观看| 欧美日韩国产色图在线| 国产精品网站免费| 无码人妻一区二区三区四区老鸭窝| 在线视频 亚洲精品| 亚洲色综合| 欧美亚洲涩涩| 啊啊啊免费视频| 岛园激情| 五月天加勒比啪| 精品日韩人妻精品一二三区| 久久午夜伦| 精品97久久| 九九热在线精品视频| 色欧洲| 青青国产精品在线| 欧美天天综合在线| 婷婷色网| 日韩欧美女求操每天更新| 亚洲激情网一二三四区| 久久中文字幕在线观看| 综合影院亚洲| 少妇综合| 啊啊啊啊啊操我视频| a片偷拍视频| 色 亚洲 91| 人妻人人做人人澡人人爽欧美一区| 国产精品午夜福利视频| 艹比视频国产精品| 综合少妇网| 欧美亚洲激情小说| 亚洲免费成人在线高清无码视频| 成熟熟女国产精品一区二区| 熟妇操花| 性色AV蜜色av色欲av| 另类av天堂| 天天弄天天操| 国产中文字幕在线观看| 男人的天堂,欧美亚洲另类国产日韩,日本高清一区二区 | 99亚洲国产精品色一区二区三区| 免费看美国人人爽,人人操| 欧美aa一级片| 色悠悠伊人网五月天| 97国产超湿| 美国aaaaa一级黄片| 欧美大香蕉专区网| 日韩性色| 嗯嗯啊啊的视频| 天美传媒av 在线| 一级黄色性爱A级片| 欧美劲爆第一页| 日本性一区| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 操人妻逼91| 日韩精品99999| 91小视频| 乱伦熟妇一区二区| 久久伊人东京热| 精品久久九| 国产精品 午夜福利| 欧美九九爱| 欧美少妇熟女| 无码9区| 九九99精品视频在线观看| 欧美日韩国产三级黄色| 日韩欧美亚洲自拍偷拍| 91综合网在线| 日本欧美中文字幕| 搡老女人老熟女91老熟女综合网| 97久久超碰亚洲| 91插B网站| 伊人久大| 一区超碰一区| 欧美性性性| 午夜福利 成人 91| 欧美色91| 午夜在线播放| 精品一区二区三区国产| 91天天| 岛国大片国产| 亚洲天堂99| 97九色人妻| 亚州久久9| 欧亚日韩综合精品国产| 人妻天天爽夜夜爽2| 97爱综合| 亚洲高清无码在线桃色| 97啪啪| 欧美性战999| 天堂精品| 欧美性91| 色网在线视频观看免费| 亚洲麻豆精品二区三区| 嗯嗯啊啊好疼| 97九色| 操逼网免费无码视频| 91在线综合网| 九一性生活免费视频| 丝袜美腿av女优在线| 不卡av在线中文字幕| 亚州情色j区| 五月天精品| 亚洲欧综合另类无码一区| 俺去久久| 在线岛| 欧美日韩国产在线| 97精品97久久| 不卡中文字幕aⅴ在线| 天天干天天拍| 蜜臀在线网站| 国产高清MV操逼视频| 久久曰曰| 天天爽夜夜爽夜夜爽精| 亚洲 欧美 91| 欧美综色欧| 五月婷婷丁香| 蜜汁欧美| 曰韩欧美国产传媒麻豆第一区| 天天综合91入口| 日韩精品一区的| 日韩精品三级| 天天日天天爽| 国产91精品在线免费| www四虎| 精品久久久av无码免费| 欧美精品在线观看| 91亚州| 一区二区三区日韩欧美| 日韩免费福利在线观看| 国产熟女精品区| 伊人黄色视频免费观看| 熟女少妇一区二区三区| 蜜桃久久综合视频| 欧美成人一级麻豆| 亚洲性综合| 暴力av在线| 国产天天骚| 国产精品蜜乳AV| 青青草中文字幕| 偷拍综合亚洲| 欧美综合站| 首页中文字幕中文字幕免费| 九热久| 夜夜骑操视频| 熟女高潮精品一区二区| 色噜噜综合在线| 亚洲图片婷婷五月天| 98超碰欧美| 一级黄碟| 精品97精品97| 丝袜美腿欧美| 日韩性爱小视频在线观看| 亚洲自拍偷拍视频在线| 日韩BBN| 天天摸天天舔天天操| 嗯嗯嗯嗯啊啊啊好紧好大| 亚洲小电影免费涩涩成人在线高清| 精品在线78| 久久少妇人妻| 黄网站黄视频网站进入口 | 亚洲乱熟女一区二区| 920日本午夜免费| 久久久亚洲Av| 91热| 日本在线15p| 国产亚卅97| 国产熟女少妇一区| 嗯啊不要啊在线 | 在线 欧美 亚洲| 干b在线性社区| 九九热五区| 精品国产99| 都市激情人妻一区二区青青操视频 | 超碰97人人乐| 欧美丝袜亚洲| 色汉综合| 国产日韩无码一区二区三区久久区| 亚州综合色| 色综合av男人天堂| 天堂а√在线最新版在线| 性开放中文AV高清无码免费看| 亚洲,日韩,欧美,成人播放| 国产成年女人免费视频播放a| 国产AV毛片| 90后性网国产欧美| 国产精品青青草| 久久不卡一区二区| 久久久国产精品亚洲精品| 久久99干一本高清| 99国产精品| 人人干人人搞人人摸| 六月丁香五月婷婷| 亚洲官网在线| 极品出轨视频网站| 一区二区三区在线美女| 亚洲AV无码久久久国产精品| 中文字暮97| 欧洲精品久久| 囯产精品久久久久久久久久梁医生 | 九色97| 久久九操在线观看| 成人怡红院| 久久久精品视频免费观看| 日韩精品.久久精品.AV女优.天美传媒| 亚洲日韩肥臀视频在线观看| 亚洲色棕合| 家庭乱伦性爱av| 欧美黑人猛交春色影视大全| 四虎精品永久在线观看| 无码免费在线观看黄色片| 国产精品一二三区福利| 国产麻豆91欧美一区二区久久婷婷国产精品 | 亚洲人人操| 亚洲风情综合网| 深田咏美亚洲精品福利社| 久久久国产精品人妻丝袜| 男人亚洲天堂| 男人干美女| 日韩成人无码| 蜜伊人色综合97| 视频一区二区免费在线| 亚洲九区| 黄色工厂这里只有精品| 东京日日夜夜| 91热| 超碰97爽| 夜夜草天天| 精品久久久久久久久久久久| 被男人添B超爽视频| 超碰日韩美妻| 人人射人人操人人摸| 午夜经典| 乱人伦 国语对白:视频直接看| 欧美碰碰综合色| 久久人人妻| 一个国产在线综合网站| 日韩干B| 日日做夜狠狠爱欧美黑人| 国产www色在线观看| 亚洲熟女少妇免费视频| 加勒比大香蕉视频在线| 搡老熟女免费视频| 亚洲精品黑丝| 99热这里只有精| 女人 A一级| 亚洲97在线| 九九九九免费视频| 黑丝少妇| 国产区91柔拿会所技师| 九九九国产| 91精品人妻啪啪间| 久久色一区| 99亚亚热| 丁香五月久久| 伊人久久在线视频观看| 超碰2017| 中文字幕欧洲有码| 亚洲国内精品成人不卡| 亚洲国产精品乱码在线观看| 操婷婷逼| 人妻丰满熟妇一区二区三| 国产97免费视频| 夜夜做夜夜爽精品视频| 久久久久久亚洲精品中文字幕人妻| 亚欧Av| 立川理惠加勒比无码| 人人操肉肉| 久久久精品中文字幕爱豆| 精品国产av一区二区三区四区入口| 色综合 加勒比| 精品人妻一区二区三区蜜桃视频| 久久久久久少妇| 日本中文字幕一区| 国产精品午夜福利视频| AV在线播放网址| 欧美日韩亚洲少妇寂寞影院正在播放| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 久操综合在线| 熟妇熟女视频一区二区三区| 久精品无码av一区二免费国产在线观看| 亚洲AV噜噜狠狠网址蜜桃动漫| 天天综合网久久ww| 久操在97| 操一对老熟妇爽上天视频| 欧美性91| 国产精品白领在线观看 | 8050无码八戒| 婷婷五月天在线观看| 粉嫩国产精品久久久| 欧美亚洲厕所精品偷拍91| 亚洲影视第一页| 青青草国产欧美非洲黑人| 久久久一区二区三区三州| 九九无码视频| 欧美天天插| 欧美日本视频一区| 国产91影院| 黑人无码一区二区| 精品久一区免费| 亚州黄站| 亚欧成人综合影院| 激情五月综合网| 久久99手机免费视频| 色色97爱| 亚洲中文国际强奸字幕| 1区2区3区在线视频| 中文字幕一区二区三区人妻不卡 | 999日韩中文精品观看视频。| 亚洲性少妇| 人妻一二三区| 亚洲精品久久久久久久久豆丁网| 超碰综合97在线| 国产精品蜜乳AV| 四虎免费看黄| 国产精品午夜AV完会免费| 一区二区三区四区色图| 精品久久97| 郑州宾馆老熟女露脸啪啪| 热久久国产精品视频大陆精品| 东京热男人的天堂| 亚洲无套久久嗯嗯| 亚洲影视综合| 亚洲 图片 欧美 色图| 日韩无码精品综合久久| 有码免费观看| 欧美性爱18观看| 91少妇香蕉久久精品| 午夜福利视频在线一区| 国产一区二区久久| Blackedraw视频一区二区| 91男人综合| 爱我干综合| 少妇综合| 99re在线视频这里只有精品| 九九aV| 日本在线伊人啪啪| 超碰日本97美女人妻人人玩人人爱| 免费操逼91| 97精品中文字幕| 九九热九九| 一区二区三区国产在线播放| 国产精品视频| 无码日韩网站| 日本人妻最新在线中| 啊啊啊啊好疼视频| 久久精品免费| 操逼视频亚洲| 国产内射爽爽大片| 中文在线视频| 亚洲精品欧洲精品| 91日韩在线| 国产又操| 日韩卡一卡二卡三在线| 激情五月天中文字幕色| 狠操91,com| 少妇被玩视频二三区| 激情五月丁香五月| av天堂5| 天天色天天干天天爱| 精品国产乱码久久久久久蜜臀| 欧美超碰人妻97| 久久久久亚洲一区女同性恋中文字幕| 黄色片大香蕉| 久久久成人国产精品无码| 日日噜噜夜夜狠狠视频无| 自拍偷拍国产欧美日韩韩|