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

詳解數據結構二叉樹及其代碼實現

開發 前端
樹是一種非常重要的非線性結構,本身具有遞歸的性質(在其后的編程中體現的淋漓盡致)。

 樹

樹是一種非常重要的非線性結構,本身具有遞歸的性質(在其后的編程中體現的淋漓盡致)。


看下圖,A 節點就是 B 節點的父節點,B 節點是 A 節點的子節點。B、C、D 這三個節點的父節點是同一個節點A,沒有父節點的叫做根節點,也就是 E 。

 

沒有子節點的節點叫作葉子節點或者葉節點,圖中的G,H,I,J,K,L

關于“樹”,還有三個比較相似的概念:高度(Height)、深度(Depth),層(level)


二叉樹(binary Tree)

二叉樹是n(n>=0)個結點的有限集合,該集合或者為空集(稱為空二叉樹),或者由一個根結點和兩棵互不相交的、分別稱為根結點的左子樹和右子樹組成。


上圖中,編號1是普通二叉樹,編號2又是滿二叉樹,編號2又是完全二叉樹。

滿二叉樹:在一棵二叉樹中。如果所有分支結點都存在左子樹和右子樹,并且所有葉子都在同一層上,這樣的二叉樹稱為滿二叉樹。

滿二叉樹的特點有:

  • 葉子只能出現在最下一層。出現在其它層就不可能達成平衡。
  • 非葉子結點的度一定是2。
  • 在同樣深度的二叉樹中,滿二叉樹的結點個數最多,葉子數最多。

編號3是完全二叉樹

「對一顆具有n個結點的二叉樹按層編號,如果編號為i(1<=i<=n)的結點與同樣深度的滿二叉樹中編號為i的結點在二叉樹中位置完全相同,則這棵二叉樹稱為完全二叉樹。」

就是保證葉子節點的上面層都要達到最大,最低下兩層,最后一層的葉子節點都靠左排列


二叉樹具備以下數學性質:

在二叉樹的第i層上至多有2(i-1)個結點(i>0)

深度為k的二叉樹至多有2K-1個結點(k>0)

對于任意一棵二叉樹,如果其葉結點數為N0,而度數為2的結點總數為N2,則N0=N2+1;

具有n個結點的完全二叉樹的深度必為log2(n+1)

二叉樹的遍歷和節點的刪除

二叉樹的遍歷是指從二叉樹的根結點出發,按照某種次序依次訪問二叉樹中的所有結點,使得每個結點被訪問一次,且僅被訪問一次。

  • 中序遍歷:先左子樹,再根節點,最后右子樹
  • 前序遍歷:先根節點,再左子樹,最后右子樹
  • 后序遍歷:先左子樹,再右子樹,最后根節點。

前序遍歷通俗的說就是從二叉樹的根結點出發,當第一次到達結點時就輸出結點數據,按照先向左在向右的方向訪問。

中序遍歷就是從二叉樹的根結點出發,當第二次到達結點時就輸出結點數據,按照先向左在向右的方向訪問。

后序遍歷就是從二叉樹的根結點出發,當第三次到達結點時就輸出結點數據,按照先向左在向右的方向訪問。


刪除共有三種情況

  • 被刪除的節點是葉子節點,這時候只要把這個節點刪除,再把指向這個節點的父節點指針置為空就行
  • 被刪除的節點有左子樹,或者有右子樹,而且只有其中一個,那么只要把當前刪除節點的父節點指向被刪除節點的左子樹或者右子樹就行。
  • 如果要刪除的節點有兩個子節點,需要找到這個節點的右子樹的最小節點,把它替換到要刪除的節點上,然后再刪除掉這個最小節點,因為最小節點肯定沒有左子節點

 

代碼具體實現二叉樹

上面就是二叉樹全部內容,下面用Pytho代碼具體實現二叉樹。

按下來就是編程實現了,請動手自己實現一把。

先實現一個 node 節點類:

  1. class Node(object): 
  2.     def __init__(self, item): 
  3.         self.item = item 
  4.         self.left = None 
  5.         self.right = None 
  6.  
  7.     def __str__(self): 
  8.         return str(self.item) 

這里的 __str__ 方法是為了方便打印。在 print 一個 Node 類時會打印__str__的返回值,例如:print(Node(5)) 就會打印出字符串 5 。

實現一個二叉樹類:

  1. class Tree(object): 
  2.     def __init__(self): 
  3.         # 根節點定義為 root 永不刪除,做為哨兵使用。 
  4.         self.root = Node('root'
  5.     # 添加節點操作 
  6.     def add(self, item): 
  7.         node = Node(item) 
  8.         if self.root is None: 
  9.             self.root = node 
  10.         else
  11.             q = [self.root] 
  12.             while True
  13.                 pop_node = q.pop(0) 
  14.                 if pop_node.left is None: 
  15.                     pop_node.left = node 
  16.                     return 
  17.                 elif pop_node.right is None: 
  18.                     pop_node.right = node 
  19.                     return 
  20.                 else
  21.                     q.append(pop_node.left
  22.                     q.append(pop_node.right
  23.  
  24.     def get_parent(self, item): 
  25.         ''
  26.         找到 Item 的父節點 
  27.         ''
  28.         if self.root.item == item: 
  29.             return None  # 根節點沒有父節點 
  30.         tmp = [self.root] 
  31.         while tmp: 
  32.             pop_node = tmp.pop(0) 
  33.             if pop_node.left and pop_node.left.item == item: 
  34.                 return pop_node 
  35.             if pop_node.right and pop_node.right.item == item: 
  36.                 return pop_node 
  37.             if pop_node.left is not None: 
  38.                 tmp.append(pop_node.left
  39.             if pop_node.right is not None: 
  40.                 tmp.append(pop_node.right
  41.         return None 
  42.  
  43.     def delete(self, item): 
  44.         ''
  45.         從二叉樹中刪除一個元素 
  46.         先獲取 待刪除節點 item 的父節點 
  47.         如果父節點不為空, 
  48.             判斷 item 的左右子樹 
  49.             如果左子樹為空,那么判斷 item 是父節點的左孩子,還是右孩子,如果是左孩子,將父節點的左指針指向 item 的右子樹,反之將父節點的右指針指向 item 的右子樹 
  50.             如果右子樹為空,那么判斷 item 是父節點的左孩子,還是右孩子,如果是左孩子,將父節點的左指針指向 item 的左子樹,反之將父節點的右指針指向 item 的左子樹 
  51.             如果左右子樹均不為空,尋找右子樹中的最左葉子節點 x ,將 x 替代要刪除的節點。 
  52.         刪除成功,返回 True 
  53.         刪除失敗, 返回 False 
  54.  
  55.         ''
  56.         if self.root is None:  # 如果根為空,就什么也不做 
  57.             return False 
  58.  
  59.         parent = self.get_parent(item) 
  60.         if parent: 
  61.             del_node = parent.left if parent.left.item == item else parent.right  # 待刪除節點 
  62.             if del_node.left is None: 
  63.                 if parent.left.item == item: 
  64.                     parent.left = del_node.right 
  65.                 else
  66.                     parent.right = del_node.right 
  67.                 del del_node 
  68.                 return True 
  69.             elif del_node.right is None: 
  70.                 if parent.left.item == item: 
  71.                     parent.left = del_node.left 
  72.                 else
  73.                     parent.right = del_node.left 
  74.                 del del_node 
  75.                 return True 
  76.             else:  # 左右子樹都不為空 
  77.                 tmp_pre = del_node 
  78.                 tmp_next = del_node.right 
  79.                 if tmp_next.left is None: 
  80.                     # 替代 
  81.                     tmp_pre.right = tmp_next.right 
  82.                     tmp_next.left = del_node.left 
  83.                     tmp_next.right = del_node.right 
  84.  
  85.                 else
  86.                     while tmp_next.left:  # 讓tmp指向右子樹的最后一個葉子 
  87.                         tmp_pre = tmp_next 
  88.                         tmp_next = tmp_next.left 
  89.                     # 替代 
  90.                     tmp_pre.left = tmp_next.right 
  91.                     tmp_next.left = del_node.left 
  92.                     tmp_next.right = del_node.right 
  93.                 if parent.left.item == item: 
  94.                     parent.left = tmp_next 
  95.                 else
  96.                     parent.right = tmp_next 
  97.                 del del_node 
  98.                 return True 
  99.         else
  100.             return False 
  101.  
  102.     def traverse(self):  # 層次遍歷 
  103.         if self.root is None: 
  104.             return None 
  105.         q = [self.root] 
  106.         res = [self.root.item] 
  107.         while q != []: 
  108.             pop_node = q.pop(0) 
  109.             if pop_node.left is not None: 
  110.                 q.append(pop_node.left
  111.                 res.append(pop_node.left.item) 
  112.  
  113.             if pop_node.right is not None: 
  114.                 q.append(pop_node.right
  115.                 res.append(pop_node.right.item) 
  116.         return res 
  117.  
  118.     def preorder(self, root):  # 先序遍歷 
  119.         if root is None: 
  120.             return [] 
  121.         result = [root.item] 
  122.         left_item = self.preorder(root.left
  123.         right_item = self.preorder(root.right
  124.         return result + left_item + right_item 
  125.  
  126.     def inorder(self, root):  # 中序遍歷 
  127.         if root is None: 
  128.             return [] 
  129.         result = [root.item] 
  130.         left_item = self.inorder(root.left
  131.         right_item = self.inorder(root.right
  132.         return left_item + result + right_item 
  133.  
  134.     def postorder(self, root):  # 后序遍歷 
  135.         if root is None: 
  136.             return [] 
  137.         result = [root.item] 
  138.         left_item = self.postorder(root.left
  139.         right_item = self.postorder(root.right
  140.         return left_item + right_item + result 

運行測試:

  1. if __name__ == '__main__'
  2.     t = Tree() 
  3.     for i in range(10): 
  4.         t.add(i) 
  5.     print('層序遍歷:', t.traverse()) 
  6.     print('先序遍歷:', t.preorder(t.root)) 
  7.     print('中序遍歷:', t.inorder(t.root)) 
  8.     print('后序遍歷:', t.postorder(t.root)) 
  9.  
  10.     for i in range(10): 
  11.         print(i, " 的父親", t.get_parent(i)) 
  12.  
  13.     for i in range(0, 15, 3): 
  14.         print(f"刪除 {i}"'成功' if t.delete(i) else '失敗'
  15.         print('層序遍歷:', t.traverse()) 
  16.         print('先序遍歷:', t.preorder(t.root)) 
  17.         print('中序遍歷:', t.inorder(t.root)) 
  18.         print('后序遍歷:', t.postorder(t.root)) 

執行結果如下:

  1. 層序遍歷: ['root', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
  2. 先序遍歷: ['root', 0, 2, 6, 7, 3, 8, 9, 1, 4, 5] 
  3. 中序遍歷: [6, 2, 7, 0, 8, 3, 9, 'root', 4, 1, 5] 
  4. 后序遍歷: [6, 7, 2, 8, 9, 3, 0, 4, 5, 1, 'root'
  5. 0  的父親 root 
  6. 1  的父親 root 
  7. 2  的父親 0 
  8. 3  的父親 0 
  9. 4  的父親 1 
  10. 5  的父親 1 
  11. 6  的父親 2 
  12. 7  的父親 2 
  13. 8  的父親 3 
  14. 9  的父親 3 
  15. 刪除 0 成功 
  16. 層序遍歷: ['root', 8, 1, 2, 3, 4, 5, 6, 7, 9] 
  17. 先序遍歷: ['root', 8, 2, 6, 7, 3, 9, 1, 4, 5] 
  18. 中序遍歷: [6, 2, 7, 8, 3, 9, 'root', 4, 1, 5] 
  19. 后序遍歷: [6, 7, 2, 9, 3, 8, 4, 5, 1, 'root'
  20. 刪除 3 成功 
  21. 層序遍歷: ['root', 8, 1, 2, 9, 4, 5, 6, 7] 
  22. 先序遍歷: ['root', 8, 2, 6, 7, 9, 1, 4, 5] 
  23. 中序遍歷: [6, 2, 7, 8, 9, 'root', 4, 1, 5] 
  24. 后序遍歷: [6, 7, 2, 9, 8, 4, 5, 1, 'root'
  25. 刪除 6 成功 
  26. 層序遍歷: ['root', 8, 1, 2, 9, 4, 5, 7] 
  27. 先序遍歷: ['root', 8, 2, 7, 9, 1, 4, 5] 
  28. 中序遍歷: [2, 7, 8, 9, 'root', 4, 1, 5] 
  29. 后序遍歷: [7, 2, 9, 8, 4, 5, 1, 'root'
  30. 刪除 9 成功 
  31. 層序遍歷: ['root', 8, 1, 2, 4, 5, 7] 
  32. 先序遍歷: ['root', 8, 2, 7, 1, 4, 5] 
  33. 中序遍歷: [2, 7, 8, 'root', 4, 1, 5] 
  34. 后序遍歷: [7, 2, 8, 4, 5, 1, 'root'
  35. 刪除 12 失敗 
  36. 層序遍歷: ['root', 8, 1, 2, 4, 5, 7] 
  37. 先序遍歷: ['root', 8, 2, 7, 1, 4, 5] 
  38. 中序遍歷: [2, 7, 8, 'root', 4, 1, 5] 
  39. 后序遍歷: [7, 2, 8, 4, 5, 1, 'root'

Binarytree是一個Python庫,它通過一個簡單的API生成二叉樹,可以進行檢查和操作。Github:https://github.com/joowani/binarytree/releases。

本文已收錄 GitHub  https://github.com/MaoliRUNsen/runsenlearnpy100

 

責任編輯:姜華 來源: Python之王
相關推薦

2021-04-20 08:37:14

數據結構二叉樹

2021-04-19 07:47:42

數據結構二叉樹Tree

2021-04-28 20:12:27

數據結構創建

2020-11-02 09:15:47

算法與數據結構

2013-01-30 10:34:02

數據結構

2020-04-27 07:05:58

二叉樹左子樹右子樹

2021-03-19 10:25:12

Java數據結構算法

2021-04-01 10:34:18

Java編程數據結構算法

2020-09-23 18:25:40

算法二叉樹多叉樹

2021-03-22 09:00:22

Java數據結構算法

2018-03-15 08:31:57

二叉樹存儲結構

2021-10-12 09:25:11

二叉樹樹形結構

2019-08-22 09:22:44

數據結構二叉搜索樹

2021-03-17 08:19:22

二叉樹LeetCode

2013-07-15 16:35:55

二叉樹迭代器

2021-09-29 10:19:00

算法平衡二叉樹

2009-08-11 13:29:57

C#二叉樹遍歷

2020-12-22 08:56:51

JavaScript數據結構前端

2021-05-06 17:46:30

二叉樹數據結構

2022-10-26 23:58:02

二叉樹數組算法
點贊
收藏

51CTO技術棧公眾號

久久亚洲风情| 成人春色在线观看免费网站| 国产精品夫妻自拍| 亚洲aⅴ日韩av电影在线观看| 欧美日韩亚洲国产另类| 欧美交a欧美精品喷水| 欧美在线视频全部完| 国产奶头好大揉着好爽视频| 欧美一区二不卡视频| 视频一区二区国产| 久久99热精品这里久久精品| 国产精品无码永久免费不卡| 国产精品高潮久久| 亚洲大片一区二区三区| 亚洲国产精品久久久久婷婷老年| 国产激情视频在线播放| 免播放器亚洲| 欧美麻豆久久久久久中文| 久久精品综合视频| 亚州精品国产| 色综合色综合色综合| 色哟哟免费网站| 美女毛片在线看| 国产成人综合网站| 国产精品视频自在线| 日韩av在线电影| 亚洲欧美综合久久久| 亚洲精品中文字幕有码专区| 午夜免费视频网站| 欧美暴力调教| 污片在线观看一区二区| 中文字幕在线亚洲精品| 国产日韩精品在线看| 成人午夜在线免费| 91人成网站www| 中文字幕av第一页| 国产日韩综合| 久久999免费视频| 在线视频这里只有精品| 九九久久电影| 亚洲精品久久7777777| 久久精品国产露脸对白| 国产人妖一区| 欧美性视频一区二区三区| 免费无遮挡无码永久视频| 日本在线视频网址| 亚洲精品免费电影| 天天爱天天做天天操| 97视频在线观看网站| 国产日韩影视精品| 日韩精品一区二区三区色偷偷| 午夜国产在线观看| www.66久久| 精品久久久三级| 天堂网av在线播放| 91欧美一区二区| 久久综合中文色婷婷| 欧美日韩国产中文字幕在线| www国产亚洲精品久久麻豆| 国产久一道中文一区| 老熟妇高潮一区二区高清视频| 国产成人精品免费看| 成人在线观看av| 欧美熟妇另类久久久久久不卡| 粉嫩蜜臀av国产精品网站| 国产福利久久精品| 欧美一区二区三区黄片| av男人天堂一区| 精品国产一区二区三| 丰满肉肉bbwwbbww| 国产成人亚洲综合色影视| 国产欧美日韩综合精品| jizz国产在线| 青青草国产精品亚洲专区无| 青青草成人在线| 中文字幕av影院| 亚洲综合激情| 7m第一福利500精品视频| 精品少妇久久久| 一区福利视频| 91精品国产乱码久久久久久蜜臀| 日本一区二区免费在线观看| 亚洲精品一二三区区别| 色偷偷88888欧美精品久久久 | 三妻四妾完整版在线观看电视剧| 亚洲人成人一区二区在线观看| 亚洲欧洲三级| 精品国产99久久久久久| 亚洲视频每日更新| 波多野结衣激情| 阿v视频在线| 韩曰欧美视频免费观看| 欧美成人xxxxx| 成人欧美一区二区三区的电影| 色婷婷国产精品综合在线观看| 日本www高清视频| 久久精品女人天堂av免费观看 | 久久人妻无码一区二区| 午夜成年人在线免费视频| 亚洲成人在线观看视频| 777久久久精品一区二区三区| 伊人久久国产| 欧美日韩免费高清一区色橹橹| 999这里有精品| 这里视频有精品| 亚洲欧洲第一视频| 午夜精品福利在线视频| 一道本一区二区| 国产精品国产三级国产专播精品人| 91精品在线视频观看| 国产盗摄女厕一区二区三区| 九9re精品视频在线观看re6| 搞黄视频免费在线观看| 亚洲免费观看高清完整版在线观看熊| 9色porny| 欧美一区=区三区| 亚洲精品在线免费观看视频| 91av在线免费| 中国成人一区| 欧美专区中文字幕| 国产女主播福利| 91年精品国产| 男女爱爱视频网站| www.com.cn成人| 欧美一区二区在线观看| 99久久免费看精品国产一区| 日韩免费视频| 4p变态网欧美系列| 91精品中文字幕| 国产欧美日韩在线观看| 成人av在线不卡| 高清av一区| 亚洲国产精品美女| 日韩激情综合网| 亚洲欧美日韩视频二区| 亚洲free性xxxx护士hd| 男男激情在线| 欧美日韩国产精品一区二区三区四区| 在线看免费毛片| 国产精品一线天粉嫩av| 久久久久久国产精品久久| 中文字幕资源网| 久久综合久久综合亚洲| 91传媒免费视频| 欧美成人福利| 亚洲欧洲国产伦综合| 国产无套在线观看| 国产主播一区二区| 亚洲精品久久区二区三区蜜桃臀| 91福利在线尤物| 欧美www视频| 神马久久精品综合| 亚洲尤物精选| 噜噜噜噜噜久久久久久91| 日本动漫同人动漫在线观看| 欧美一区在线视频| 国产aaaaaaaaa| 三级一区在线视频先锋| 女女同性女同一区二区三区91| 国精产品一区一区三区mba下载| 欧美日韩一区二区在线观看视频| www在线观看免费视频| 亚洲麻豆视频| 国产区二精品视| 国语对白在线刺激| 亚洲国产免费av| 精品午夜福利视频| 丁香桃色午夜亚洲一区二区三区| 欧美性受黑人性爽| 精品国产三级| 久久久国产精品x99av | 日本在线免费看| 欧美三级电影网| 五月激情四射婷婷| 热久久国产精品| 欧洲国产精品| 日韩av黄色| 超碰91人人草人人干| a级片免费观看| 一区二区三区 在线观看视频| 香蕉视频xxx| 欧美另类视频| 精品视频免费观看| 另类图片综合电影| 精品在线欧美视频| 91激情在线观看| 国产精品免费aⅴ片在线观看| 天天综合网日韩| 香蕉视频国产精品| 91久久精品一区二区别| 五月婷婷视频在线观看| 欧美精品一区二区在线播放| 亚洲一区 视频| 国产午夜亚洲精品羞羞网站| 99视频在线视频| 欧美激情日韩| 青青草成人网| 国产精品毛片无码| 欧美国产日韩中文字幕在线| 色播色播色播色播色播在线 | 99ri日韩精品视频| 69**夜色精品国产69乱| 欧美新色视频| 3d动漫精品啪啪1区2区免费| www.av视频| 久久婷婷国产综合精品青草 | 国产一区二区导航在线播放| 免费高清一区二区三区| 欧美欧美黄在线二区| 国产美女精品视频| а_天堂中文在线| 这里只有精品丝袜| 欧美一区二区三区激情| 精品视频免费看| 免费观看一级视频| 国产网站一区二区| 国产又黄又嫩又滑又白| 国产欧美二区| 日韩最新中文字幕| 日韩影视在线观看| 成人免费淫片视频软件| 日本不卡网站| 久久中文字幕在线| 你懂的在线免费观看| 91精品国产欧美一区二区| 精品视频久久久久| 亚洲国产精品99久久久久久久久| 99国产精品免费视频| 日韩va欧美va亚洲va久久| 999一区二区三区| 亚洲v在线看| 日本一区视频在线观看| 91综合精品国产丝袜长腿久久| 国产精品久久网| www.九色在线| 欧美高清视频在线观看| 最新av网站在线观看| 日韩高清a**址| 国产wwwxxx| 欧美日韩精品一区二区天天拍小说 | 一区二区欧美久久| 手机在线精品视频| 欧美一区二区精品在线| 中国一区二区视频| 欧美午夜激情视频| 日本网站在线免费观看| 亚洲乱码国产乱码精品精可以看| 欧美激情视频二区| 久久久99久久| 免费看毛片的网站| 99久久777色| 伊人网综合视频| 国产999精品久久久久久绿帽| 亚洲一区二区三区四区五区| 久久精品国语| 99色精品视频| 日韩一级免费| 国产传媒久久久| 99精品国产一区二区青青牛奶 | 亚洲专区一区| av7777777| 国产日韩欧美一区| 男人的天堂狠狠干| 最新国产乱人伦偷精品免费网站| 国产极品在线视频| 亚洲全部视频| 国产精品自拍片| 国产欧美69| 国产美女三级视频| 久久久久久自在自线| 精品中文字幕av| 久久久精品午夜少妇| 熟女少妇在线视频播放| 欧美网站在线| 久久美女福利视频| 日本欧美一区二区在线观看| 国产免费999| 老司机午夜精品| 国内av一区二区| 国产成人精品在线看| 4438x全国最大成人| 国产超碰在线一区| 精品一区二区视频在线观看| 91日韩精品一区| 一级黄色毛毛片| 亚洲人成亚洲人成在线观看图片| 波多野结衣亚洲色图| 亚洲1区2区3区4区| 国产又粗又猛又黄视频| 欧美日韩一区二区在线观看视频| 92久久精品一区二区| 日韩一区二区电影在线| 韩国av在线免费观看| 亚洲欧美日韩第一区| av在线资源站| 精品国产一区av| 天堂中文在线播放| 国产精品视频一区二区高潮| 一区在线不卡| 国产精品日韩一区二区| 精品视频日韩| 免费的av在线| 国产欧美日韩一区二区三区在线| 麻豆传传媒久久久爱| 精品制服美女久久| 中文字幕视频三区| 国产三级欧美三级日产三级99| 91日韩中文字幕| 欧美性高跟鞋xxxxhd| 在线观看国产黄| 精品国产成人系列| 日韩伦理在线电影| 午夜精品久久久久久久久久久久久 | 国产一区二区三区在线观看免费 | 色欲av无码一区二区人妻| 日本美女视频一区二区| 不许穿内裤随时挨c调教h苏绵| 久久免费看少妇高潮| 永久免费未视频| 精品国产电影一区| 91theporn国产在线观看| 亚洲视频在线观看网站| 直接在线观看的三级网址| 国产www精品| 中文字幕一区图| 亚洲欧洲日本国产| 国产精品试看| 91精品又粗又猛又爽| 国产精品美女久久久久久久久久久 | 伊人久久久久久久久久久久| 欧美一区二区视频网站| 黄色av网站在线看| 欧美高清自拍一区| 久久综合偷偷噜噜噜色| 日韩欧美视频一区二区| 亚洲激情精品| 乱码一区二区三区| 1024成人网色www| 超碰在线免费97| 国产丝袜一区视频在线观看 | 欧美在线视频网站| 97se亚洲| 日韩精品免费一区| 久久激情五月婷婷| 精品人妻一区二区三区四区| 日韩欧美黄色动漫| 欧美自拍偷拍第一页| 九九精品视频在线| 9999在线精品视频| 日韩偷拍一区二区| 久久亚洲风情| 黄色av免费播放| 欧美色网一区二区| 国产高清免费在线播放| 日本精品免费一区二区三区| 欧美调教在线| 国产免费观看高清视频| 国产99久久久国产精品潘金| 久久高清内射无套| 欧美一区二区网站| 日本三级韩国三级欧美三级| 亚洲最大的av网站| 婷婷久久综合| 奇米777在线| 亚洲精品中文在线影院| 国产黄色一区二区| 久久久精品国产一区二区| 国产成人a视频高清在线观看| 日韩免费毛片| 日韩精品欧美精品| 美国黄色特级片| 欧美日韩高清一区二区不卡| 91国内在线| 国产a一区二区| 亚洲国产第一| 精品无码在线视频| 色噜噜夜夜夜综合网| 天堂在线中文资源| 国产精品视频久久| 一本一本久久a久久综合精品| 四虎国产精品永久免费观看视频| 亚洲黄色免费网站| 蜜桃91麻豆精品一二三区| 青青草成人在线| 欧美大片aaaa| 国内av免费观看| 亚洲午夜三级在线| 天天操天天操天天| 2019日本中文字幕| 婷婷综合伊人| 国产不卡一二三| 在线看不卡av| 最新黄网在线观看| 国产精品永久入口久久久| 免费人成黄页网站在线一区二区| 2025国产精品自拍| 日韩久久精品电影| 国产精品无码久久久久| 日本久久久网站| 中文字幕一区二区三区乱码在线|