精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

掉一根頭發(fā),徹底搞懂二叉搜索樹

開發(fā) 前端
對于二叉排序樹而言,本章重點關(guān)注其實現(xiàn)方式以及插入、刪除步驟流程,我們會手寫一個二叉排序樹,二叉樹遍歷部分的內(nèi)容比較多會單獨詳細(xì)講解。

[[391293]]

前言

前面介紹學(xué)習(xí)的大多是線性表相關(guān)的內(nèi)容,把指針搞懂后其實也沒有什么難度,規(guī)則相對是簡單的,后面會講解一些比較常見的數(shù)據(jù)結(jié)構(gòu),用多圖的方式讓大家更容易吸收。

在數(shù)據(jù)結(jié)構(gòu)與算法中,樹是一個比較大的家族,家族中有很多厲害的成員,這些成員有二叉樹和多叉樹(例如B+樹等),而二叉樹的大家族中,二叉搜索樹(又稱二叉排序樹)是最最基礎(chǔ)的,在這基礎(chǔ)上才能繼續(xù)拓展學(xué)習(xí)AVL(二叉平衡樹)、紅黑樹等知識。

對于二叉排序樹而言,本章重點關(guān)注其實現(xiàn)方式以及插入、刪除步驟流程,我們會手寫一個二叉排序樹,二叉樹遍歷部分的內(nèi)容比較多會單獨詳細(xì)講解。

什么是樹

樹是一種數(shù)據(jù)結(jié)構(gòu),它是由n(n>=1)個有限結(jié)點組成一個具有層次關(guān)系的集合。把它叫做“樹”是因為它看起來像一棵倒掛的樹,也就是說它是根朝上,而葉朝下的。

 

樹是遞歸的,將樹的任何一個節(jié)點以及節(jié)點下的節(jié)點都能組合成一個新的樹,所以樹的很多問題都是使用遞歸去完成。

根節(jié)點: 最上面的那個節(jié)點(root),根節(jié)點沒有父節(jié)點,只有子節(jié)點(0個或多個都可以)

層數(shù): 一般認(rèn)為根節(jié)點是第1層(有的也說第0層),而樹的高度就是層數(shù)最高(上圖層數(shù)開始為1)節(jié)點的層數(shù)

節(jié)點關(guān)系:

  • 父節(jié)點:連接該節(jié)點的上一層節(jié)點,
  • 孩子節(jié)點: 和父節(jié)點對應(yīng),上下關(guān)系。而祖先節(jié)點是父節(jié)點的父節(jié)點(或者祖先)節(jié)點。
  • 兄弟節(jié)點:擁有同一個父節(jié)點的節(jié)點們!

節(jié)點的度: 就是節(jié)點擁有孩子節(jié)點的個數(shù)(是直接連接的孩子不是子孫).

樹的度: 就是所有節(jié)點中最大 (節(jié)點的度)。同時,如果度大于0的節(jié)點是分支節(jié)點,度等于0的節(jié)點是葉子節(jié)點(沒有子孫)。

相關(guān)性質(zhì):


二叉樹

二叉樹是一樹的一種,但應(yīng)用比較多,所以需要深入學(xué)習(xí),二叉樹的每個節(jié)點最多只有兩個子節(jié)點(但不一定非得要有兩個節(jié)點)。

二叉樹與度為2的樹的區(qū)別:

1、度為2的的樹必須有三個節(jié)點以上(否則就不叫度為二了,一定要先存在),二叉樹可以為空。

2、二叉樹的度不一定為2,比如斜樹

3、二叉樹有左右節(jié)點區(qū)分,而度為2的樹沒有左右節(jié)點的區(qū)分。

幾種特殊二叉樹:

滿二叉樹:高度為n的滿二叉樹有(2^n) -1個節(jié)點


滿二叉樹

完全二叉樹:上面一層全部滿,最下一層從左到右順序排列


完全二叉樹

二叉排序樹:樹按照一定規(guī)則插入排序(本文詳解)。

平衡二叉樹:樹上任意節(jié)點左子樹和右子樹深度差距不超過1(后文詳解).

二叉樹性質(zhì):

1、二叉樹有用樹的性質(zhì)

2、非空二叉樹葉子節(jié)點數(shù)=度為2的節(jié)點數(shù)+1.本來一個節(jié)點如果度為1.那么一直延續(xù)就一個葉子,但如果出現(xiàn)一個度為2除了延續(xù)原來的一個節(jié)點,會多出一個節(jié)點需要維系。所以到最后會多出一個葉子。

3、非空第i層最多有2^(i-1)個節(jié)點。

4、高為h的樹最多有(2^h)-1個節(jié)點(等比求和)。

二叉樹一般用鏈?zhǔn)酱鎯Γ@樣內(nèi)存利用更高,但二叉樹也可以用數(shù)組存儲的(經(jīng)常會遇到),各個節(jié)點對應(yīng)的下標(biāo)是可以計算出來的,就拿一個完全二叉樹若從左往右,從上到下編號如圖:


二叉樹節(jié)點位置對應(yīng)關(guān)系

二叉排序(搜索)樹

概念

前面鋪墊那么多,咱們言歸正傳,詳細(xì)講解并實現(xiàn)一個二叉排序樹,二叉搜索樹擁有二叉樹的性質(zhì),同時有一些自己的規(guī)則:

首先要了解二叉排序樹的規(guī)則:從任意節(jié)點開始,節(jié)點左側(cè)節(jié)點值總比節(jié)點右側(cè)值要小

例如一個二叉排序樹依次插入15,6,23,7,4,71,5,50會形成下圖順序

 

一個二叉排序樹

構(gòu)造

二叉排序樹是由若干節(jié)點(node)構(gòu)成的,對于node需要這些屬性:left,right,和value。其中l(wèi)eft和right是左右指針指向左右孩子子樹,而value是儲存的數(shù)據(jù),這里用int 類型。

node類構(gòu)造為:

  1. class node {//結(jié)點 
  2.     public int value; 
  3.     public node left
  4.     public node right
  5.     public node() 
  6.     { 
  7.     } 
  8.     public node(int value) 
  9.     { 
  10.         this.value=value; 
  11.         this.left=null
  12.         this.right=null
  13.     } 
  14.     public node(int value,node l,node r) 
  15.     { 
  16.         this.value=value; 
  17.         this.left=l; 
  18.         this.right=r; 
  19.     }            

既然節(jié)點構(gòu)造好了,那么就需要節(jié)點等其他信息構(gòu)造成樹,有了鏈表構(gòu)造經(jīng)驗,很容易得知一棵樹最主要的還是root根節(jié)點。

所以樹的構(gòu)造為:

  1. public class BinarySortTree { 
  2.     node root;//根 
  3.     public BinarySortTree() 
  4.     {root=null;} 
  5.     public void makeEmpty()//變空 
  6.     {root=null;} 
  7.     public boolean isEmpty()//查看是否為空 
  8.     {return root==null;} 
  9.     //各種方法 

可以用圖來表示一下這個結(jié)構(gòu):

 

主要方法

既然已經(jīng)構(gòu)造好一棵樹,那么就需要實現(xiàn)主要的方法,因為二叉排序樹中每個節(jié)點都能看作一棵樹。所以我們創(chuàng)建方法的是時候加上節(jié)點參數(shù)(方便一些遞歸調(diào)用)

findmax(),findmin()

findmin()找到最小節(jié)點:

因為所有節(jié)點的最小都是往左插入,所以只需要找到最左側(cè)的返回即可,具體實現(xiàn)可使用遞歸也可非遞歸while循環(huán)。

findmax()找到最大節(jié)點:

因為所有節(jié)點大的都是往右面插入,所以只需要找到最右側(cè)的返回即可,實現(xiàn)方法與findmin()方法一致。

代碼使用遞歸函數(shù)

  1. public node findmin(node t)//查找最小返回值是node,調(diào)用查看結(jié)果時需要.value 
  2.     if(t==null) {return null;} 
  3.     else if(t.left==null) {return t;} 
  4.     else return(findmin(t.left));    
  5. public node findmax(node t)//查找最大 
  6.     if(t==null) {return null;} 
  7.     else if(t.right==null) {return t;} 
  8.     else return(findmax(t.right));   

一個圖中查找最大最小過程如下:

 

查找過程

isContains(int x)

這里的意思是查找二叉查找樹中是否存在值為x的節(jié)點。

在具體實現(xiàn)上,根據(jù)二叉排序樹左側(cè)更小,右側(cè)更大的性質(zhì)進(jìn)行往下查找,如果找到值為x的節(jié)點則返回true,如果找不到就返回false,當(dāng)然實現(xiàn)上可以采用遞歸或者非遞歸,我這里使用非遞歸的方式。

  1. public boolean isContains(int x)//是否存在 
  2.     node current=root; 
  3.     if(root==null) {return false;} 
  4.     while(current.value!=x&&current!=null)  
  5.     { 
  6.         if(x<current.value) {current=current.left;} 
  7.         if(x>current.value) {current=current.right;} 
  8.         if(current==null) {return false;}//在里面判斷如果超直接返回 
  9.     } 
  10.     //如果在這個位置判斷是否為空會導(dǎo)致current.value不存在報錯 
  11.      if(current.value==x) {return true;}         
  12.     return false;        

insert(int x)

插入的思想和前面isContains(int x)類似,找到自己的位置(空位置)插入。

但是具體實現(xiàn)上有需要注意的地方,我們要到待插入位置上一層節(jié)點,你可能會疑問為什么不直接找到最后一個空,然后將current賦值過去current=new node(x),這樣的化current就相當(dāng)于指向一個new node(x)節(jié)點,和原來樹就脫離關(guān)系(原樹相當(dāng)于沒有任何操作),所以要提前通過父節(jié)點判定是否為空找到位置,找到合適位置通過父節(jié)點的left或者right節(jié)點指向新創(chuàng)建的節(jié)點才能完成插入的操作。

  1. public node insert(int x)// 插入 t是root的引用 
  2.     node current = root; 
  3.     if (root == null) { 
  4.         root = new node(x); 
  5.         return root; 
  6.     } 
  7.     while (current != null) { 
  8.         if (x < current.value) { 
  9.             if (current.left == null) { 
  10.                 return current.left = new node(x);} 
  11.             else current = current.left;} 
  12.         else if (x > current.value) { 
  13.             if (current.right == null) { 
  14.                 return current.right = new node(x);} 
  15.             else current = current.right
  16.         } 
  17.     } 
  18.     return current;//其中用不到 

比如說上面樹插入值為51的節(jié)點。

圖片

插入值為51的節(jié)點

delete(int x)

刪除操作算是一個相對較難理解的操作了,因為待刪除的點可能在不同位置所以具體處理的方式也不同,如果是葉子即可可直接刪除,有一個孩子節(jié)點用子節(jié)點替換即可,有兩個子節(jié)點的就要先找到值距離待刪除節(jié)點最近的點(左子樹最大點或者右子樹最小點),將值替換掉然后遞歸操作在子樹中刪除已經(jīng)替換的節(jié)點,當(dāng)然沒具體分析可以看下面:

刪除的節(jié)點沒有子孫:

這種情況不需要考慮,直接刪除即可(節(jié)點=null即可)(圖中紅色點均滿足這種方式)。


待刪除節(jié)點為葉子節(jié)點

一個子節(jié)點為空:

此種情況也很容易,直接將刪除點的子節(jié)點放到被刪除位置即可。

 

待刪除節(jié)點有1個孩子

左右節(jié)點均不空

左右孩子節(jié)點都不為空這種情況是相對比較復(fù)雜的,因為不能直接用其中一個孩子節(jié)點替代當(dāng)前節(jié)點(放不下,如果孩子節(jié)點也有兩個孩子那么有一個節(jié)點無法放,例如拿下面71節(jié)點替代)

 

待刪除節(jié)點有兩個孩子

如果拿19或者71節(jié)點填補。雖然可以保證部分側(cè)大于小于該節(jié)點,但是會引起合并的混亂.比如你若用71替代23節(jié)點。那么你需要考慮三個節(jié)點(19,50,75)之間如何處理,還要考慮他們是否滿,是否有子女,這是個復(fù)雜的過程,不適合考慮。

所以,我們要分析我們要的這個點的屬性:能夠保證該點在這個位置仍滿足二叉搜索樹的性質(zhì)(找到值最近的),那么子樹中哪個節(jié)點滿足這樣的關(guān)系呢?

左子樹中最右側(cè)節(jié)點或者右子樹中最左側(cè)節(jié)點都滿足,我們可以選一個節(jié)點將待刪除節(jié)點值替換掉(這里替換成左子樹最右側(cè)節(jié)點)。

這個點替換之后該怎么辦呢?很簡單啊,二叉樹用遞歸思路解決問題,再次調(diào)用刪除函數(shù)在左子樹中刪除替換的節(jié)點即可。

 

先替換值再遞歸在子樹中刪除18節(jié)點

這里演示是選取左子樹最大節(jié)點(最右側(cè))替代,當(dāng)然使用右子樹最小節(jié)點也能滿足在這待刪除的大小關(guān)系,原理一致。整個刪除算法流程為:


刪除流程

這部分操作的代碼為:

  1. public node remove(int x, node t)// 刪除節(jié)點 
  2.   if (t == null) { 
  3.     return null
  4.   } 
  5.   if (x < t.value) { 
  6.     t.left = remove(x, t.left); 
  7.   } else if (x > t.value) { 
  8.     t.right = remove(x, t.right); 
  9.   } else if (t.left != null && t.right != null)// 左右節(jié)點均不空 
  10.   { 
  11.     t.value = findmin(t.right).value;// 找到右側(cè)最小值替代 
  12.     t.right = remove(t.value, t.right); 
  13.   } else // 左右單空或者左右都空 
  14.   { 
  15.     if (t.left == null && t.right == null) { 
  16.       t = null
  17.     } else if (t.right != null) { 
  18.       t = t.right
  19.     } else if (t.left != null) { 
  20.       t = t.left
  21.     } 
  22.     return t; 
  23.   } 
  24.   return t; 

完整代碼

這個完整代碼是筆者在大三時候?qū)懙模赡苡胁簧偈杪┗蛘卟灰?guī)范的地方,僅供學(xué)習(xí)參考,如有疏漏錯誤還請指正。

二叉排序樹完整代碼為:

結(jié)語

這里我們學(xué)習(xí)了解了樹、二叉樹、以及二叉搜素樹,對于二叉搜素樹插入查找比較容易理解,但是實現(xiàn)的時候要注意函數(shù)參數(shù)的引用等等。

偏有難度的是二叉樹的刪除,利用一個遞歸的思想,分類討論待刪除情況,要找到特殊情況和普通情況,遞歸一定程度也是問題的轉(zhuǎn)化(轉(zhuǎn)成自己相同問題,作用域減小)需要思考。

下面還會介紹二叉樹的三序遍歷(遞歸和非遞歸)和層序遍歷。這些都是比較經(jīng)典熱門的問題需要深入了解。

 

責(zé)任編輯:姜華 來源: bigsai
相關(guān)推薦

2023-08-29 08:31:13

B+樹數(shù)據(jù)索引

2022-12-26 00:51:33

雙向鏈表二叉搜索樹

2021-12-07 06:55:17

二叉搜索樹鏈表

2021-08-31 11:35:24

二叉搜索樹迭代法公共祖先

2021-09-06 10:38:50

二叉搜索樹遞歸

2021-09-03 08:58:00

二叉搜索樹節(jié)點

2021-09-02 11:31:28

二叉搜索樹迭代法公共祖先

2022-01-11 10:01:25

二叉搜索樹數(shù)量

2023-07-31 08:01:13

二叉搜索測試

2020-04-27 07:05:58

二叉樹左子樹右子樹

2021-09-07 11:01:41

二叉搜索樹序數(shù)組

2024-01-17 07:36:50

二叉搜索聯(lián)系簿

2021-08-26 11:31:11

二叉樹數(shù)據(jù)結(jié)構(gòu)算法

2021-05-06 05:29:32

二叉堆數(shù)據(jù)結(jié)構(gòu)算法

2023-02-13 08:02:08

哈希函數(shù)哈希表搜索樹

2023-05-04 07:30:28

二叉搜索樹BST

2021-05-06 17:46:30

二叉樹數(shù)據(jù)結(jié)構(gòu)

2021-10-11 06:38:52

遞歸二叉搜索樹

2020-10-11 16:56:48

二叉搜索樹代碼開發(fā)

2020-09-23 18:25:40

算法二叉樹多叉樹
點贊
收藏

51CTO技術(shù)棧公眾號

中文精品电影| 国产婷婷视频在线| 噜噜噜久久亚洲精品国产品小说| 亚洲欧美日韩第一区| 日本中文字幕高清| av网站在线免费看推荐| 99国产一区二区三精品乱码| 国产精品久久久久99| 欧美日韩在线国产| 伊人久久大香线蕉综合网站| 在线不卡中文字幕| 哪个网站能看毛片| 欧美人动性xxxxz0oz| 国产午夜三级一区二区三| 成人高清视频观看www| 日韩xxxxxxxxx| 在线免费看av| 国产99久久久久| 国产精品网站视频| 日韩三级一区二区三区| 婷婷综合视频| 亚洲色图五月天| 免费看日本毛片| 亚乱亚乱亚洲乱妇| 久久久久亚洲av无码专区| 中文字幕一区二区人妻| 欧美午夜一区| 日韩在线视频一区| 99精品一区二区三区无码吞精| 日韩视频在线观看免费视频| 日韩天堂在线| 亚洲国产精品天堂| 国产精品久久久久久久久久免费| 欧美人妻精品一区二区三区| 精品一区二区三区中文字幕老牛| 精品欧美乱码久久久久久| 老司机久久精品| 性高爱久久久久久久久| 精品久久香蕉国产线看观看亚洲 | 卡通动漫国产精品| 欧美一区二区三区在线电影| 国产成人黄色网址| 欧美二三四区| 好吊成人免视频| 亚洲国产精品国自产拍av秋霞 | 婷婷亚洲一区二区三区| 91精品久久久久久久蜜月| 亚洲天堂av高清| 欧美 日本 国产| 成人软件在线观看| 亚洲妇女屁股眼交7| 亚洲国产一二三精品无码| 黄网站免费在线播放| 国产精品的网站| 亚洲一区二区三区免费看| 大片免费播放在线视频| 国产人成一区二区三区影院| 日本一区二区三区四区高清视频 | 99九九99九九九视频精品| 国产精品久久国产精品| 欧美亚洲精品在线观看| 成人av午夜影院| 精品乱子伦一区二区三区| 日韩中文字幕观看| 久久亚洲精精品中文字幕早川悠里| 国产日韩一区欧美| 亚洲aⅴ在线观看| 久久九九国产精品| 亚洲无玛一区| 在线看女人毛片| 亚洲mv在线观看| 欧美黄色免费影院| 97成人超碰| 91精品福利在线一区二区三区| 美女被艹视频网站| 精品久久97| 亚洲欧洲国产伦综合| 欧美另类69xxxx| 午夜国产精品视频免费体验区| 久久91精品国产91久久久| 五月天婷婷丁香| 另类天堂av| 91精品视频专区| 人妻一区二区三区四区| 久久久三级国产网站| 日本不卡在线观看| 黄网站在线免费看| 五月天丁香久久| 五月婷婷狠狠操| 亚洲超碰在线观看| 亚洲欧洲xxxx| 青青草手机在线观看| 国产日本精品| 一区二区三区中文在线| 午夜免费在线观看精品视频| 日韩精品一区二区在线播放 | 日韩激情在线视频| 亚洲自拍欧美色图| 香蕉视频网站在线| 国产精品欧美极品| 久久综合九色欧美狠狠| 三级男人添奶爽爽爽视频| 欧美一性一交| 久久精视频免费在线久久完整在线看| 97超碰成人在线| 91成人精品在线| 永久免费看mv网站入口亚洲| 久久影院一区二区| 日本中文字幕一区二区有限公司| 超碰在线观看97| 99中文字幕一区| 欧美性xxxxxx| 色综合久久久久无码专区| a屁视频一区二区三区四区| 日韩欧美国产小视频| 久久亚洲AV无码专区成人国产| 亚洲精品久久| 国产精品户外野外| 秋霞在线观看一区二区三区| 精品88久久久久88久久久| 国产精品私房写真福利视频| 亚洲欧美日本国产专区一区| 日韩av中文字幕一区| 性国裸体高清亚洲| 成人高清免费观看mv| 一炮成瘾1v1高h| 国产剧情在线| 偷偷要91色婷婷| 久久精品无码一区二区三区毛片 | 亚洲三级观看| 亚洲一区二区在线播放| 成人性生交大片免费看午夜 | 台湾色综合娱乐中文网| 欧美极品少妇xxxxⅹ喷水| 国产伦精品一区二区三区免.费| 久久久久国产精品厨房| 欧美日韩在线一| 高清欧美性猛交xxxx黑人猛| 久久6免费高清热精品| 国产精品无码白浆高潮| 国产精品欧美久久久久无广告 | 99久久亚洲一区二区三区青草| 99亚洲国产精品| 亚洲啪av永久无码精品放毛片 | 91资源在线播放| 国产精品日韩久久久| 国产美女99p| 国产一线二线在线观看| 久久久久久久免费视频了| 国产96在线 | 亚洲| h片在线观看视频免费| 欧美一区二区三区四区在线观看| 多男操一女视频| 狠狠色丁香婷婷综合久久片| 自拍亚洲欧美老师丝袜| 岛国毛片av在线| 97成人超碰视| 57pao精品| 精品国产xxx| 人妖欧美一区二区| 欧洲亚洲一区二区三区四区五区| 在线男人天堂| 亚洲午夜小视频| 亚洲国产精品久| 国产黄人亚洲片| 久久久久99精品成人片| 老牛精品亚洲成av人片| 国产91精品久久久久| 九色在线观看| 欧美日韩国产精选| 欧美三级小视频| 99精品视频一区| 手机看片福利日韩| 香蕉精品视频在线观看| 99久久99久久精品国产片| 国产理论在线| 一区二区福利视频| 国产熟女一区二区三区五月婷 | 国产精品.xx视频.xxtv| 久久久国产精彩视频美女艺术照福利 | 午夜免费福利在线观看| 欧美一级二级在线观看| 91久久国产视频| 国产婷婷色一区二区三区 | 亚洲高清国产拍精品26u| 欧美高清激情视频| 免费人成黄页在线观看忧物| 欧美剧在线免费观看网站| xxxx 国产| 日本一区二区免费在线观看视频| 手机av在线网站| 国产精品视频| 91免费网站视频| 欧美天堂影院| 91久久精品国产| 日韩伦理在线一区| 久久综合五月天| 日韩欧美电影在线观看| 7777精品伊人久久久大香线蕉最新版 | 性猛交富婆╳xxx乱大交天津 | 久久精品一本久久99精品| 天堂中文网在线| 欧美久久久久久久久久| 国产美女激情视频| 亚洲精品成人悠悠色影视| 欧洲美一区二区三区亚洲 | 在线精品视频免费播放| 久草视频中文在线| 亚洲国产成人午夜在线一区| 久久久高清视频| 精品亚洲porn| 男女视频一区二区三区| 影音先锋久久| 97se国产在线视频| 成人在线爆射| 午夜精品视频在线| www久久日com| 中文字幕久热精品在线视频| 天天干天天色天天| 欧美一卡二卡在线观看| 国产裸体美女永久免费无遮挡| 亚洲线精品一区二区三区八戒| 欧美黄色一级生活片| av在线综合网| 欧美性生交xxxxx| 中文字幕一区二区三区免费看 | 色婷婷亚洲mv天堂mv在影片| 国产精品我不卡| 国产电影一区| 91精品久久久久久久久久| 亚洲最新无码中文字幕久久| 久久青草福利网站| 伊人福利在线| 麻豆国产精品va在线观看不卡 | 欧美在线国产精品| 中文字幕 日韩有码| 天天免费综合色| 国产极品在线播放| 一区二区三区四区视频精品免费 | 国产亚洲欧美一区二区三区| 精品中文视频| 亚洲自拍偷拍色片视频| 四虎影视国产精品| 国产精品丝袜久久久久久高清| 国产在线|日韩| 久久九九国产精品怡红院 | av一区二区高清| 欧美性xxxx69| 国产成人精品三级高清久久91| 久久综合伊人77777麻豆| 天美av一区二区三区久久| 精品一区二区不卡| 日韩精品福利一区二区三区| 久久久久久久久久码影片| 18免费在线视频| 欧美fxxxxxx另类| 91在线播放视频| 日韩欧美中文字幕一区二区三区| 91欧美精品午夜性色福利在线| 高清久久精品| 高清不卡日本v二区在线| 国产一区二区三区亚洲| 久久婷婷人人澡人人喊人人爽| 香蕉精品久久| 欧美日韩在线一区二区三区| 欧美三级伦理在线| 国产福利片一区二区| 欧美性久久久| 东京热加勒比无码少妇| 免费观看在线综合| 亚洲精品在线免费看| 波多野结衣在线播放一区| 中国一区二区三区| 黄色日韩精品| 欧美精品第三页| 精久久久久久久久久久| 少妇精品无码一区二区| 91麻豆免费看片| 国产三级精品三级观看| 亚洲精品成人在线| 男人天堂2024| 欧美一区二区三区视频在线| 色婷婷激情五月| 中文字幕亚洲一区二区三区五十路| 91最新在线视频| 青青草一区二区| 精品视频一区二区三区| 久久精品ww人人做人人爽| 四虎国产精品免费观看| 日本一区视频在线观看免费| 先锋资源久久| 黑鬼大战白妞高潮喷白浆| 精品无码三级在线观看视频| 国产偷人妻精品一区| 中文字幕制服丝袜一区二区三区 | √新版天堂资源在线资源| 欧美激情视频一区| 91国内外精品自在线播放| 风间由美一区二区三区| 色婷婷色综合| 亚洲人成色77777| 国产成人啪免费观看软件| 快灬快灬一下爽蜜桃在线观看| 亚洲一区视频在线| 亚洲图片视频小说| 欧美午夜电影一区| 免费国产精品视频| 久久精品国产电影| 成人精品电影在线| 国产偷久久久精品专区| 亚洲五月综合| 一区二区三区 欧美| thepron国产精品| 亚洲成人生活片| 欧美日韩综合一区| 免费在线国产| 91av在线播放视频| 成人春色在线观看免费网站| 在线视频亚洲自拍| 青青草国产精品亚洲专区无| 国产精品久久久免费观看| 亚洲精品高清在线观看| 国产又粗又黄又爽的视频| 亚洲午夜色婷婷在线| 精品众筹模特私拍视频| 成人在线播放av| 久久亚洲国产| 亚洲国产成人va在线观看麻豆| 久久精品夜夜夜夜久久| 久久亚洲天堂网| 亚洲黄色成人网| 岛国片av在线| 国产另类第一区| 亚洲区国产区| 无码国产69精品久久久久网站| 一区二区不卡在线视频 午夜欧美不卡在| 欧美三根一起进三p| 欧美日韩国产不卡| 91社区在线观看播放| 国产精品福利观看| 欧美人与物videos另类xxxxx| 欧美v在线观看| 久久免费看少妇高潮| 亚洲欧美综合另类| 亚洲人成网站色ww在线| 88xx成人永久免费观看| 日韩精品一区二区三区四区五区| 成人台湾亚洲精品一区二区| 性感美女极品91精品| 在线观看免费av网址| a视频在线观看| 久久伊人中文字幕| 波多野结衣激情| 日本黄色免费视频| 青青草精品视频| 国产精品久在线观看| 深夜视频一区二区| 色女孩综合网| 久久成人综合网| 欧美国产综合在线| 粉嫩一区二区三区性色av| 精品视频久久久久| 日韩精品久久久久久福利| 卡通欧美亚洲| 亚洲国产精品久久久久久女王| 久久国内精品视频| 欧美爱爱小视频| 亚洲国产精品一区二区三区| 国产网友自拍视频导航网站在线观看 | 97久久精品在线| 欧美顶级毛片在线播放| www黄色av| 久久美女性网| 精品乱码亚洲一区二区不卡| 香蕉国产在线视频| 庆余年2免费日韩剧观看大牛| 狠狠操综合网| 亚洲日本黄色片| 性做久久久久久免费观看| 香蕉视频911| 色综合久久66| 国产精品探花视频| 992tv在线成人免费观看| 精品美女久久久| 国产精品一级无码| 日韩欧美亚洲一二三区| 麻豆传媒在线观看| 国产日韩欧美精品| 精品一区二区国语对白| 日韩三级小视频| 日韩一区二区欧美| 久草在线中文最新视频| 亚洲日本精品| 成人h动漫精品一区二| 波多野结衣二区三区| 欧美黑人一级爽快片淫片高清| av一区二区三| 欧美一级欧美一级在线播放| 成年女人在线看片| 中文字幕日韩一区二区三区不卡|