日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

数据结构与算法(python版)

發布時間:2023/12/20 python 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据结构与算法(python版) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近學習數據結構,對于從未接觸過數據結構的我來說,老師不僅講解理論,還有代碼的逐層分析,非常不錯,受益匪淺!!!(以下是學習記錄)

黑馬程序員孔德海老師教程

目錄

  • 重點+基礎語法
  • 時間復雜度(主要關注最壞時間復雜度)
  • time.it,list,dic內置函數
  • 數據結構
  • 順序表
    • 順序表的2個形式
    • 順序表的結構與實現
    • 順序表數據區擴充
    • 順序表的操作
    • python_list使用順序表數據結構
  • 鏈表
    • 單鏈表的實現
      • 指定位置添加元素
      • 查找節點是否存在
      • 刪除節點
    • 鏈表與順序表的對比
    • 雙向鏈表
    • 單向循環鏈表
      • length(self)返回鏈表長度
      • 頭部添加節點
  • 隊列
  • 排序
    • 冒泡排序O(n2)穩定
    • 選擇排序O(n2)不穩定
    • 插入排序O(n2)穩定
    • 希爾排序
    • 快速排序(不穩定)
    • 歸并排序
    • 排序算法效率比較
  • 搜索
    • 樹的存儲
    • 應用
    • 二叉樹的節點表示以及樹的創建
    • 二叉樹的遍歷
      • 廣度優先遍歷(層次遍歷)
      • 深度優先遍歷
    • 根據數據畫樹圖
  • 樹的補充
    • 二叉排序樹(BST)
    • 平衡二叉樹(AVL)
    • 紅黑樹
    • 多路查找樹
      • B-樹(多路平衡查找樹)
      • B+樹

重點+基礎語法

  • python語言只要是給出的變量名,里邊存儲的都是地址值(可以把類,函數,付給變量a)。
    如a=5 a=“s” a=Person() a=f 方法
  • java基本數據類型中,變量a存放的是數值。引用數據類型(對象,數組,集合)的變量a存放的是地址。

  • #1 strat=time.time()

    時間復雜度(主要關注最壞時間復雜度)

    不同方法間的復雜度

    import time start= time.time() for i in range(0,1001):for j in range(0,1001):for k in range(0,1001):if i+j+k==1000 and i**2+j**2==k**2:print(i,j,k) end = time.time() print("總開銷:",end-start)#總開銷: 126.49699997901917start1= time.time() for i in range(0,1001):for j in range(0,1001):k=1000-i-jif i**2+j**2==k**2:print(i,j,k) end1= time.time() print("總開銷:",end1-start1)#總開銷: 1.0120000839233398
  • T(n)時間復雜度,n執行的步數
    大O表示法,只記錄最顯著特征O(n)=nxn
  • 最壞時間復雜度(平常說的就是這個)
    比如對一個list排序,無序的復雜度要高于有序
  • 基本步驟:順序,條件(取T最大值),循環
    li.append()不能看成一步,只有分析函數中的封裝才能看到append的時間復雜度


    time.it,list,dic內置函數

    from timeit import Timer def test3():l = [i for i in range(1000)] t3 = Timer("test3()", "from __main__ import test3")#1函數名,2import,因為這個Timer不一定在這里運行 print("comprehension ",t3.timeit(number=10000), "seconds")#test3()執行10000次后,10000次總的執行時間import time start=time.time()#從1970年到現在的計時秒數 end=time.time()-start#返回秒

    對于上例使用不同方法實現時

    1. ('list(range(1000)) ', 0.014147043228149414, 'seconds') ('l = [i for i in range(1000)]', 0.05671119689941406, 'seconds') ('li.append ', 0.13796091079711914, 'seconds') ('concat加 ', 1.7890608310699463, 'seconds') 2.由于數據的存儲方式不同,導致插頭部和尾部 append()#2.159s insert(0,i)#30.00s pop(end)#0.00023,對尾部彈出 pop(0)#1.91

    數據結構

    數據是一個抽象的概念,將其分類后得到程序語言的基本類型,如int,float,char。數據結構指對數據的一種封裝組成,如高級數據結構list,字典。數據結構就是一個類的概念,數據結構有順序表、鏈表、棧、隊列、樹。

    算法復雜度只考慮的是運行的步驟,數據結構要與數據打交道。數據保存的方式不同決定了算法復雜度

    程序 = 數據結構 + 算法
    總結:算法是為了解決實際問題而設計的,數據結構是算法需要處理的問題載體

    抽象數據類型(Abstract Data Type)
    抽象數據類型(ADT)的含義是指一個數學模型以及定義在此數學模型上的一組操作。

    == 代碼編寫注意==

    2.對于鏈表要先接入新的node,再打斷原來的,要注意順序

    下面講的各種表都是一種數據的封裝結構

    順序表

    順序表+鏈表=線性表:一根線串起來,兩種表都是用來存數據的

    順序表的2個形式

  • 計算機存儲
    計算機最小尋址單位是1字節,就是一個字節,才有一個地址,所有的地址都是統一大小0x27 4個字節
  • 元素內置順序表
    對于存放一個含有相同類型元素的list來講,用順序表封裝成一個數據結構。

  • 元素外置順序表

    元素內置順序表,是指存儲的數據類型都是一樣,這樣為每個元素開辟的空間都是一樣大的,在根據index找元素的時候
    如list1=[1,2,3], 可以根據list的首地址0x12,很容易計算要查詢元素的物理地址=0x12+index x 4.
    元素外置, 指存的數據類型不一樣,如list2=[1,3,“b”,4,“ccc”]
  • 順序表的結構與實現


    對于python來講已經做好封裝,不需要寫容量,元素個數


    so常用的是分離式

    順序表數據區擴充

    如果數據要來回增,刪,導致空間不穩定,所以有了策略

    順序表的操作


    python_list使用順序表數據結構

    1.表頭與數據分離式 2.因為一個list中有int,也有字符所以用的是元素外置 3.動態順序中的倍數擴充

    鏈表

    # cur做判斷,邏輯(不是指針)走到最后一個元素時,里面的方法體是執行的 # 用cur.next做判斷,while循環中是不執行的 # 如果發現少一次執行語句,可以手動打印,就不用完全在while循環中執行





    java,c語言是需要中間變量temp,才能完成交換,只有python可以直接交換

    單鏈表的實現


    cur:指針地址
    cur.elment:地址中的元素
    cur=self._head先提出等式右邊地址,再給cur

    多寫幾次單鏈表,有助理解,鏈表的運行過程

    1. """單鏈表的結點,里面存放element區和next"""相當于元祖(element,nextclass SingleNode(object):def __init__(self,item):# _item存放數據元素self.item = item# _next是下一個節點的標識self.next = None 2."""單鏈表數據結構類,具有以下功能"""相當于python中的list數據結構類,同時它也具有以下功能 class SingleLinkList(object):"""存放一個屬性P,好用來指向第一個節點"""def __init__(self,):self._head = None# _ 私有屬性,head=None說明P指向的單鏈表中沒有nodedef is_empty(self):"""判斷鏈表是否為空"""return self._head == Nonedef length(self):"""鏈表長度"""# current游標用來遍歷節點,初始時指向頭節點cur = self._head#直接指到第一個節點count = 0# 尾節點指向None,當未到達尾部時while cur != None:count += 1# 將cur后移一個節點cur = cur.next #相當于指向下一個節點return countdef travel(self):"""遍歷鏈表"""cur = self._head#直接指到第一個節點while cur != None:print cur.item,#打印第一個節點cur = cur.next#相當于指向下一個節點print ""def add(self, item):"""頭部添加元素"""# 先創建一個保存item值的節點node = SingleNode(item)# 將新節點的鏈接域next指向頭節點,即_head指向的位置,有先后,否則會丟失鏈node.next = self._head# 將鏈表的頭_head指向新節點self._head = nodedef append(self, item):"""尾部添加元素"""node = SingleNode(item)# 先判斷鏈表是否為空,若是空鏈表,則將_head指向新節點if self.is_empty():self._head = node#append時候,我只要保證把我的node地址給你就行,node.next不用管# 若不為空,則找到尾部,將尾節點的next指向新節點else:cur = self._headwhile cur.next != None:cur = cur.nextcur.next = node#直接將node送給cur.next,內部操作就是把node結點地址給他if __name__=="__main__":li=SingleLinkList()print(li.is_empty())print(li.length())node = SingleNode(3)li.append(11111)li.travel()3.使用node =Node(100)single_obj=SingleLinkList(node)#創建node,讓單鏈表指向它single_obj=SingleLinkList()#直接創建空鏈表

    指定位置添加元素

    ![在這里插入圖片描述](https://img-blog.csdnimg.cn/20200805105253710.png?x-os s-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzQ2MjA0MjI0,size_16,color_FFFFFF,t_70)

    def insert(self, pos, item):"""指定位置添加元素"""# 若指定位置pos為第一個元素之前,則執行頭部插入if pos <= 0:self.add(item)# 若指定位置超過鏈表尾部,則執行尾部插入elif pos > (self.length()-1):self.append(item)# 找到指定位置else:node = SingleNode(item)count = 0# pre用來指向指定位置pos的前一個位置pos-1,初始從頭節點開始移動到指定位置pre = self._headwhile count < (pos-1):count += 1pre = pre.next# 先將新節點node的next指向插入位置的節點node.next = pre.next# 將插入位置的前一個節點的next指向新節點pre.next = node

    查找節點是否存在

    def search(self,item):"""鏈表查找節點是否存在,并返回True或者False"""cur = self._headwhile cur != None:#一直往后走,起到遇到none停止if cur.item == item:return Truecur = cur.nextreturn False

    刪除節點

    def remove(self,item):"""刪除節點"""cur = self._headpre = Nonewhile cur != None:# 找到了指定元素if cur.item == item:# 如果第一個就是刪除的節點if not pre:# 將頭指針指向頭節點的后一個節點self._head = cur.nextelse:# 將刪除位置前一個節點的next指向刪除位置的后一個節點pre.next = cur.nextbreakelse:# 繼續按鏈表后移節點pre = curcur = cur.next

    鏈表與順序表的對比

    鏈表只能記錄頭節點地址,因此在訪問,尾部插,中間查時,都需要從頭節點,遍歷過去,所以復雜度O(n)

  • 鏈表可以利用離散的空間,順序表只能開辟完整的連續空間,只要list不夠,必須重新開辟
  • 鏈表時間花費到遍歷地址上,順序表花費到表的復制搬遷
  • 雙向鏈表

    對于前面單向的,當前node不能查看其前面node的信息,所以引入雙向。添加,刪除node時,要保證每個node中的P,N都 給上值,如:中間插入

    頭部插入元素

    def add(self, item):"""頭部插入元素"""node = Node(item)if self.is_empty():# 如果是空鏈表,將_head指向nodeself._head = nodeelse:# 將node的next指向_head的頭節點node.next = self._head# 將_head的頭節點的prev指向nodeself._head.prev = node# 將_head 指向nodeself._head = node

    尾部插入元素

    def append(self, item):"""尾部插入元素"""node = Node(item)if self.is_empty():# 如果是空鏈表,將_head指向nodeself._head = nodeelse:# 移動到鏈表尾部cur = self._headwhile cur.next != None:cur = cur.next# 將尾節點cur的next指向nodecur.next = node# 將node的prev指向curnode.prev = cur

    中間插入

    單向循環鏈表

    由于是循環列表,最后的尾結點不再是None結束,而是指向self._head
    由于一開始將cur = self._head設成游標,所以判斷語句只能是cur.next
    while cur.next != self._head
    使用cur.next不能進到循環體,會導致少一次打印,可以手動打印

    length(self)返回鏈表長度

    def length(self):"""返回鏈表的長度"""# 如果鏈表為空,返回長度0if self.is_empty():return 0count = 1cur = self._head#指針啟動地址while cur.next != self._head:#因為循環鏈表最后一個node要帶有self._head,所以通過判斷是否有self._head來看是否一個循環結束count += 1cur = cur.nextreturn count

    頭部添加節點

    def add(self, item):"""頭部添加節點"""node = Node(item)if self.is_empty():self._head = nodenode.next = self._headelse:#添加的節點指向_headnode.next = self._head# 移到鏈表尾部,將尾部節點的next指向nodecur = self._headwhile cur.next != self._head:cur = cur.nextcur.next = node#_head指向添加node的self._head = node

    棧=杯
    順序表,鏈表是用來存數據的
    棧和隊列不考慮數據是如何存放的,棧stack,隊列是一種容器,執行什么樣的操作,抽象結構。
    6*(2+3)

    #利用前面封裝好的順序表的二次開發 class Stack(object):"""棧"""def __init__(self):#初始化的時候要生成一個容器,順序表就是python中的list,然后再執行操作,可將list設成私有的,self.__items = []這樣就不能修改原來的list容器self.items = []def is_empty(self):"""判斷是否為空"""return self.items == []#右邊是一個判斷返回True#對于存放的數據結構是順序表來講,尾部壓棧出棧復雜度為o(1),對于鏈表來講,頭部復雜度為o(1),所以要考慮def push(self, item):#從尾部壓,從尾部取"""加入元素"""self.items.append(item)def pop(self):"""彈出元素"""return self.items.pop()def peek(self):"""返回棧頂元素"""return self.items[len(self.items)-1]def size(self):"""返回棧的大小"""return len(self.items)if __name__ == "__main__":stack = Stack()stack.push("hello")stack.push("world")stack.push("itcast")print stack.size()print stack.peek()print stack.pop()print stack.pop()print stack.pop()

    隊列


    #因為出入隊總有一個復雜度為N,所以考慮是出隊用的多,還是入隊多,再寫程序 class Queue(object):"""隊列"""def __init__(self):#空列表保存隊列self.items = []def is_empty(self):return self.items == []def enqueue(self, item):"""進隊列"""self.items.insert(0,item)def dequeue(self):"""出隊列"""return self.items.pop()def size(self):"""返回大小"""return len(self.items)if __name__ == "__main__":q = Queue()q.enqueue("hello")q.enqueue("world")q.enqueue("itcast")print q.size()print q.dequeue()print q.dequeue()print q.dequeue()

    雙端隊列
    兩個棧尾部放一起

    是上面的擴展,含有的函數功能更多了

    排序

    排序算法的穩定性

    冒泡排序O(n2)穩定

    #可以將這個算法操作在順序表上(改變存儲位置),也可以操作在鏈表上(改變node節點) #不論list是什么要,O(n)=n^2 def bubble_sort(alist):for j in range(len(alist)-1,0,-1):#n-1,n-2,,,1# j表示每次遍歷需要比較的次數,是逐漸減小的for i in range(j):if alist[i] > alist[i+1]:alist[i], alist[i+1] = alist[i+1], alist[i]li = [54,26,93,17,77,31,44,55,20] bubble_sort(li) print(li)#加個檢測是否交換的優化的count,這樣復雜度為n #[1,2,3,4,5,9,8] def bubble_sort(alist):for j in range(len(alist)-1,0,-1):#n-1,n-2,,,1# j表示每次遍歷需要比較的次數,是逐漸減小的count=0for i in range(j):if alist[i] > alist[i+1]:alist[i], alist[i+1] = alist[i+1], alist[i]count+=1if 0 == count:contine li = [54,26,93,17,77,31,44,55,20] bubble_sort(li) print(li)

    冒泡是穩定的

    選擇排序O(n2)不穩定

    比如[5,5,2],就是不穩定的
    選擇排序,插入排序,希爾排序是把序列分成兩部分,把其中的一部分元素往另外一部分做


    list=[54,226,93,17,77,31,44,55,21] def selec_sort(list):for j in range(len(list)-1):min=list[j]for i in range(j+1,len(list)):if list[i]<min:min=list[i]list[j],list[i]=list[i],list[j]print(list) selec_sort(list)

    插入排序O(n2)穩定


    #這個想法像選擇排序,每次對比選出最大,沒有插序的相鄰之間對比,向前移 list=[54,226,93,17,77,44,4,55,21]#0, 1, 2, 3 4, 5, 6 ,7, 8 def insert_sort(list):for j in range(1,len(list)):max=list[j]for i in range(0,len(list)-1,1):#先寫第一個循化,可以直接用下表list[1],然后再加上外循環,看看j與list[1]下標的關系if list[i]>max:max=list[i]list[j],list[i]=list[i],list[j]print(list) insert_sort(list) #version1插序的相鄰之間對比,向前移,用下面的方法 def insert_sort(alist):# 從第二個位置,即下標為1的元素開始向前插入for i in range(1, len(alist)):# 從第i個元素開始向前比較,如果小于前一個元素,交換位置for j in range(i, 0, -1):if alist[j] < alist[j-1]:alist[j], alist[j-1] = alist[j-1], alist[j]alist = [54,26,93,17,77,31,44,55,20] insert_sort(alist) print(alist)#version2 #對于上面的用for j in range(i, 0, -1):來控制i,與i-1,i-2的比較,操作比較復雜 #這里用 while i>0: i-=1 來控制指針向0的方向移動,隨著i的變動,每次只比較i與i-1 def insert_sort(alist):# 從第二個位置,即下標為1的元素開始向前插入for i in range(1, len(alist)):# 從第i個元素開始向前比較,如果小于前一個元素,交換位置while i>0:if alist[i] < alist[i-1]:alist[i], alist[i-1] = alist[i-1], alist[i]i-=1else:break alist = [54,26,93,1711,77,31,44,55,20] insert_sort(alist) print(alist)

    希爾排序

    def shell_sort(list):n=len(list)gap=n//2 #gap=4while gap>=1:#gap一直變化到1for j in range(gap,n):#for控制的是gap=4時的4個子序列i=jwhile i >0:#跟之前插入排序一樣,對于一個序列的具體操作,與普通插入的區別就是gap步長if list[i]<list[i-gap]:list[i],list[i-gap]=list[i-gap],list[i]i-=gapelse:breakgap//=2#gap減半list = [54,26,93,17,77,31,44,55,20] shell_sort(list) print(list)

    快速排序(不穩定)

    快速排序(英語:Quicksort),又稱劃分交換排序(partition-exchange sort),通過一趟排序將要排序的數據分割成獨立的兩部分,其中一部分的所有數據都比另外一部分的所有數據都要小,然后再按此方法對這兩部分數據分別進行快速排序,整個排序過程可以遞歸進行,以此達到整個數據變成有序序列。
    注意
    1.version2 中,兩個while有一個是等號,保證相同大小的元素放到mid的同一邊,這是快排設計的一個思想
    用version2的思想寫代碼

    def quick_sort(alist, start, end):"""快速排序"""# 遞歸的退出條件if start >= end:return# 設定起始元素為要尋找位置的基準元素mid = alist[start]# low為序列左邊的由左向右移動的游標low = start# high為序列右邊的由右向左移動的游標high = endwhile low < high:# 如果low與high未重合,high指向的元素不比基準元素小,則high向左移動while low < high and alist[high] >= mid:#加=號表示將2個一樣的值放到一邊,不加的話,最終迭代后也會正確high -= 1# 將high指向的元素放到low的位置上alist[low] = alist[high]# 如果low與high未重合,low指向的元素比基準元素小,則low向右移動while low < high and alist[low] < mid:low += 1# 將low指向的元素放到high的位置上alist[high] = alist[low]# 退出循環后,low與high重合,此時所指位置為基準元素的正確位置# 將基準元素放到該位置alist[low] = mid# 對基準元素左邊的子序列進行快速排序quick_sort(alist, start, low-1)#這里要保證使用同一個list,這樣產生的多個子序列下標是保持不變的,才能恢復成一個list# 對基準元素右邊的子序列進行快速排序quick_sort(alist, low+1, end)alist = [54,26,93,17,77,31,44,55,20] quick_sort(alist,0,len(alist)-1) print(alist)

    歸并排序

    def merge_sort(alist):if len(alist) <= 1:#遞歸的終止條件 return alist# 二分分解num = len(alist)/2left = merge_sort(alist[:num]) right = merge_sort(alist[num:])# 合并return merge(left,right)def merge(left, right):'''合并操作,將兩個有序數組left[]和right[]合并成一個大的有序數組'''#left與right的下標指針l, r = 0, 0result = []while l<len(left) and r<len(right):if left[l] < right[r]:result.append(left[l])l += 1else:result.append(right[r])r += 1result += left[l:]#當上面的while循環出來時,一個list的元素是取完的,保證將另外一個list余下的元素appendresult += right[r:]return result#是一個新list,不再使用之前list下標alist = [54,26,93,17,77,31,44,55,20] sorted_alist = mergeSort(alist) print(sorted_alist)

    遞歸時要注意縮進,這樣可以幫助理解

    排序算法效率比較

    搜索

    二分法
    前提,二分查找只能作用于有序列表

    遞歸法:當list處理后得到的list,還想再進行同樣的操作,使用遞歸,但是不能無限遞歸下去,所以終止條件很重要,在這個例子中,要么alist[midpoint]=item,return True,要么 if len(alist) = 0: return False,用來退出遞歸

    #遞歸法,每次生成一個新的list def binary_search(alist, item):if len(alist) == 0:return Falseelse:midpoint = len(alist)//2if alist[midpoint]==item:return Trueelse:if item<alist[midpoint]:return binary_search(alist[:midpoint],item)else:return binary_search(alist[midpoint+1:],item)testlist = [0, 1, 2, 8, 13, 17, 19, 32, 42,] print(binary_search(testlist, 3)) print(binary_search(testlist, 13))binary_search([0, 1, 2, 8, 13, 17, 19, 32, 42,],item=3)midpoint=43<13binary_search([0, 1, 2, 8],item=3)midpoint=23>2binary_search([8],item=3)midpoint=1//2=03<8binary_search([],item=3)#a=[1,2,3,4] print(a[5:])會返回空列表return False

    非遞歸
    遞歸法,調用函數自身,每次生成一個新的list,然后在list上操作.非遞歸法使用的是同一個list,所以first,last下標很重要,在while循環中,不斷更新first,last值來實現對于list的取值控制

    def binary_search(alist, item):first = 0last = len(alist)-1while first<=last:midpoint = (first + last)/2if alist[midpoint] == item:return Trueelif item < alist[midpoint]:last = midpoint-1else:first = midpoint+1return False testlist = [0, 1, 2, 8, 13, 17, 19, 32, 42,] print(binary_search(testlist, 3)) print(binary_search(testlist, 13))







    和前面的二分查找是一樣的

    樹的存儲

    應用

    二叉樹的節點表示以及樹的創建

    self.root = root#保存一個根節點,可以有,也可以沒有,如果有的話說明self.root后面跟著一串數據,然后.append,在這個基礎上進行加.如果self.root=None,self.root = node,為樹創建第一個節點


    A為第一層,2^ 0, 2^1, ,2^2
    寫完代碼后,要分析下特殊情況是否可以跑通,若不能的話,再寫特殊語句對待

    廣度優先的add實現的二茶樹->考察隊列,先入先出

    #樹就是鏈表的擴充,鏈表有一個element,和next,但是樹有兩個分支,所以lchild,rchild. class Node(object):"""節點類"""def __init__(self, elem, lchild=None, rchild=None):self.elem = elemself.lchild = lchildself.rchild = rchild#樹的創建,創建一個樹的類,并給一個root根節點,一開始為空,隨后添加節點 class Tree(object):"""樹類"""def __init__(self, root=None):self.root = root#保存一個根節點,可以有,也可以沒有,如果有的話說明self.root后面跟著一串數據,然后.append,在這個基礎上進行加.如果self.root=None,self.root = node,為樹創建第一個節點def add(self, elem):#廣度優先的添加方式創建的二茶樹"""為樹添加節點"""node = Node(elem)#如果樹是空的,則對根節點賦值,若沒有這行,直接走到下面會出錯if self.root == None:self.root = nodeelse:queue = []queue.append(self.root)#對已有的節點進行層次遍歷while queue:# 通過不斷的壓入隊列,里面的數將會越來越多,不會為0#彈出隊列的第一個元素cur = queue.pop(0)if cur.lchild == None:cur.lchild = nodereturnelif cur.rchild == None:cur.rchild = nodereturnelse:#如果左右子樹都不為空,加入隊列繼續判斷queue.append(cur.lchild)queue.append(cur.rchild)

    二叉樹的遍歷

    廣度優先遍歷(層次遍歷)

    def breadth_travel(self):"""利用隊列實現樹的層次遍歷"""if self.root == None:returnqueue = []queue.append(root)while queue:#這個queue最后是要為空的(上面的那么add的queue,由于滿足條件就會return,所以不會空)node = queue.pop(0)print node.elem,if node.lchild != None:queue.append(node.lchild)if node.rchild != None:queue.append(node.rchild)

    深度優先遍歷


    每次把框縮小一開始0為根節點,然后1為根節點,然后3為根節點,根節點一直變動

    def preorder(self, root):"""遞歸實現先序遍歷"""if root == None:#控制迭代結束returnprint root.elemself.preorder(root.lchild)self.preorder(root.rchilddef inorder(self, root): """遞歸實現中序遍歷"""if root == None:returnself.inorder(root.lchild)print root.elemself.inorder(root.rchild)def postorder(self, root):"""遞歸實現后續遍歷"""if root == None:returnself.postorder(root.lchild)self.postorder(root.rchild)print root.elem

    根據數據畫樹圖

    一定要中序:用來分割數據
    前、后序:用來找根

    樹的補充

    只列出大綱,后序學習

    二叉排序樹(BST)

    平衡二叉樹(AVL)

    特點:1.是二叉排序樹 ⒉滿足每個結點的平衡因子絕對值<=1

    紅黑樹

    紅黑樹是一個“適度平衡”的二叉搜索樹,而非如AVL一般“嚴格”的平衡。(說它不嚴格是因為它不是嚴格控制左、右子樹高度或節點數之差小于等于1。)
    面試常問:什么是紅黑樹?

    1.每個節點只能是紅色或者黑色。
    2.根節點必須是黑色。
    3.紅色節點的子節點只能是黑色。
    4.從任一節點到其每個葉子節點,的所有路徑上,包含黑色節點的數目相同。

    多路查找樹

    B-樹(多路平衡查找樹)

    視頻增刪查
    B樹又稱為多路平衡查找樹,是一種組織和維護外存文件系統非常有效的數據結構。比如數據庫的索引。






    B+樹

    b+樹和b樹的區別_B+樹和B/B樹的區別?Mysql為啥用B+樹來做索引?
    b+樹適合范圍查找,比如找年齡在18-22歲的人的信息,先用隨機查找找到18,再用順序查到到22,速度極快,這也是為啥Mysql用B+樹來做索引。

    主要區別:
    1.所有關鍵字都會在在葉子節點出現
    2.內部節點(非葉子節點)不存儲數據(b樹內部節點是存儲data的),數據只在葉子節點存儲(葉子節指其下沒有子樹了)
    3.所有葉子結點構成了一個鏈指針,而且所有的葉子節點按照順序排列。

    B+樹比B樹有什么優勢?
    1.每一層更寬,更胖,存儲的數據更多。因為B+樹只存儲關鍵字,而不存儲多余data.所以B+樹的每一層相比B樹能存儲更多節點。
    2.所有的節點都會在葉子節點上出現,查詢效率更穩定。因為B+樹節點上沒有數據,所以要查詢數據就必須到葉子節點上,所以查詢效率比B樹穩定。而在 B 樹中,非葉子節點也會存儲數據,這樣就會造成查詢效率不穩定的情況,有時候訪問到了非葉子節點就可以找到關鍵字,而有時需要訪問到葉子節點才能找到關鍵字。
    3.查詢效率比B樹高。因為B+樹更矮,更胖,所以和磁盤交互的次數比B樹更少,而且B+樹通過底部的鏈表也可以完成遍歷,但是B樹需要找到每個節點才能遍歷,所以B+樹效率更高。

    總結:
    1.存的多 2.查詢穩定 3.查的快

    總結

    以上是生活随笔為你收集整理的数据结构与算法(python版)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    免费福利片2019潦草影视午夜 | 成人动漫视频在线 | 69精品视频在线观看 | 91桃色免费视频 | 欧美va天堂va视频va在线 | 亚洲国内精品 | 91在线看黄 | 99久久99视频只有精品 | 天天操婷婷 | 91精品免费在线 | 成片视频在线观看 | www国产精品com | 久久久精品国产一区二区 | 久久久久欠精品国产毛片国产毛生 | 在线播放第一页 | 国产视频一区二区三区在线 | 亚洲精品高清一区二区三区四区 | 成人在线黄色电影 | 亚洲黄色网络 | 亚洲成人黄 | 91久草视频| 国产日韩欧美在线看 | 特级片免费看 | 999精品视频| 手机av电影在线观看 | 97超碰成人在线 | 国产亚洲成人网 | 亚洲精品玖玖玖av在线看 | 日本爱爱免费 | 久久免费99 | 九九在线高清精品视频 | 在线视频手机国产 | 欧美日韩精品综合 | 国产精品美女久久久久久久久 | 日韩av在线免费播放 | 久久久久久久久久久久99 | 色天天中文 | 婷婷激情网站 | 国产剧情一区二区在线观看 | 人人揉人人揉人人揉人人揉97 | 一级a性色生活片久久毛片波多野 | 超碰在线9 | 色多多污污 | 久久精品在线视频 | 日韩精品免费 | 免费视频二区 | 免费国产一区二区视频 | 91精品一区在线观看 | 69av视频在线观看 | 在线视频a | 欧美性大胆 | 午夜精品福利在线 | 夜夜干天天操 | 亚洲dvd | 久久精精品视频 | 手机在线看永久av片免费 | 美女免费电影 | 五月色综合| 国产成免费视频 | 最近中文字幕完整视频高清1 | 日韩网站在线免费观看 | 超碰97网站 | 日韩欧美在线中文字幕 | 久操视频在线免费看 | 成人免费中文字幕 | 丁香花在线视频观看免费 | 91成人免费看片 | 中文字幕一区二区三区乱码不卡 | 亚洲综合成人婷婷小说 | 日韩理论视频 | 在线观看精品 | 精品在线你懂的 | 91.麻豆视频 | 日韩av片无码一区二区不卡电影 | 亚洲国产精品va在线看黑人 | av三级av| 亚洲午夜久久久久久久久久久 | 五月婷婷狠狠 | 天天操·夜夜操 | 视频三区在线 | 美女在线黄 | 国产精品男女 | 黄色a视频免费 | 久久久久久久免费 | 伊人天堂网 | av在线播放中文字幕 | 久久这里只有精品9 | 91精品视频在线免费观看 | 亚洲精品在线电影 | 天天干,天天操,天天射 | 91精品一区二区三区蜜臀 | 国产麻豆精品一区 | 国产精品剧情在线亚洲 | 天天操导航 | 在线看岛国av | 久久精品96 | 成人在线免费视频观看 | 久久短视频 | 免费色视频在线 | 天天插狠狠插 | 国产精品亚洲人在线观看 | 日韩啪啪小视频 | 欧美a级在线免费观看 | 久久激情五月婷婷 | 国产成人福利在线观看 | 久草新在线 | 日韩av中文在线 | 激情综合亚洲 | 一区二区三区视频在线 | 国产五十路毛片 | 久久无码精品一区二区三区 | 国内精品久久久久久久 | 狠狠操天天操 | 中文字幕一区二区三区四区 | 日本三级吹潮在线 | 欧美伦理电影一区二区 | 成人va在线观看 | 一本到在线 | 91手机电影| 婷婷久久一区二区三区 | 中文字幕av播放 | 麻豆91精品91久久久 | 国产黄大片 | 久草视频在线观 | 91免费网站在线观看 | 国产第一页在线播放 | 久久久精品国产一区二区三区 | 国产最新视频在线观看 | 日韩av免费大片 | 日韩午夜精品 | 在线看日韩 | 九精品| 亚洲永久国产精品 | 一级性视频| 欧美a在线看| 国产专区精品视频 | 国产精品嫩草影院9 | 午夜精品久久一牛影视 | 毛片的网址 | 久久免费a | 亚洲专区欧美 | 91麻豆精品91久久久久同性 | 最近高清中文字幕在线国语5 | 成人免费91 | 在线探花| 在线播放 日韩专区 | 精品久久一区二区三区 | 999抗病毒口服液 | 成人午夜精品 | 91成人亚洲 | 日本夜夜草视频网站 | 热re99久久精品国产66热 | 九九九九九九精品任你躁 | 日韩免费在线观看网站 | 色婷婷福利视频 | 最新国产精品视频 | 国产精品18毛片一区二区 | 亚洲精品资源在线 | 五月婷婷开心 | 免费黄色网址大全 | 四虎在线免费观看 | 国产成人精品午夜在线播放 | 亚洲电影av在线 | 国产一区成人 | 黄色软件大全网站 | 国产一级视频在线观看 | 美女在线观看网站 | 91精品国自产拍天天拍 | 黄色日批网站 | 黄色三级久久 | 亚洲欧美视屏 | 国产成人黄色在线 | 久久久久久久久精 | 综合视频在线 | 四虎影视成人精品国库在线观看 | 五月天色丁香 | av电影 一区二区 | 97在线精品视频 | 激情影院在线 | 亚洲人成人在线 | 久热香蕉视频 | 国产在线专区 | 99热高清 | 在线黄色免费 | 在线91av| 欧美国产一区在线 | 在线日韩一区 | 国产精品永久在线 | 成人久久久久久久久久 | 久久国产视屏 | 最新av免费 | 国产精品精品久久久 | 亚洲国产片色 | 丰满少妇久久久 | 在线观看av麻豆 | 97福利视频 | www.福利 | 天天天天天天操 | 久久久亚洲麻豆日韩精品一区三区 | 国产精品免费观看久久 | 亚洲高清视频在线观看免费 | 久久99国产精品免费 | 久久精品视频播放 | 亚洲国产成人在线播放 | 久久久久国产精品免费网站 | 国产99久久精品一区二区永久免费 | 九九热有精品 | 91大神精品视频在线观看 | 日韩久久久久久久久久久久 | 97视频在线免费观看 | 成人日批视频 | 亚洲黄网址| 欧美精品少妇xxxxx喷水 | 国产爽妇网| 玖玖视频国产 | 91成人黄色 | 久久久久久免费网 | 欧美日韩精品二区第二页 | 99久久婷婷国产一区二区三区 | 久久经典国产视频 | 激情欧美xxxx| 日韩av中文在线观看 | 奇米7777狠狠狠琪琪视频 | 国产精品高清免费在线观看 | 国产在线精品区 | 久久久久国产精品厨房 | 成人av在线亚洲 | 亚洲国产精品久久久 | 欧美一区二区三区四区夜夜大片 | 久久高清免费 | 久久免费a| 99久久日韩精品视频免费在线观看 | 亚洲四虎影院 | 精品国产亚洲日本 | 五月开心六月婷婷 | 欧美男同视频网站 | 九九九九精品九九九九 | 美女视频a美女大全免费下载蜜臀 | 在线视频电影 | 成人动漫一区二区 | 天天天天干 | 色婷婷亚洲 | 97成人免费 | 国产91精品一区二区麻豆亚洲 | 欧美日韩免费一区 | 国产第一福利 | 91视频 - x99av| 在线中文字幕电影 | 亚洲狠狠婷婷综合久久久 | 人人舔人人干 | 日韩久久久久久久久久久久 | 麻豆91精品91久久久 | 免费影视大全推荐 | 亚洲精品综合一二三区在线观看 | 波多野结衣在线播放视频 | 亚洲综合欧美日韩狠狠色 | a视频免费在线观看 | 激情黄色一级片 | 伊香蕉大综综综合久久啪 | 欧美精品一区二区在线观看 | 国产最新精品视频 | 日韩av中文在线观看 | 九九九热精品免费视频观看网站 | 午夜精品一区二区三区在线 | 欧美 另类 交 | 免费观看国产精品视频 | 成人免费看片网址 | 在线观看亚洲精品视频 | 国产高清视频免费 | 在线观看免费黄色 | 日韩专区一区二区 | 国产一级视频在线观看 | 国产精品一区二区吃奶在线观看 | 午夜久久电影网 | 久久69av | 久久人人爽人人爽人人 | 中文字幕二区在线观看 | 在线观看免费成人 | 亚洲美女久久 | 久久五月婷婷丁香社区 | 亚洲一区 av | 看片网站黄 | 麻豆国产精品一区二区三区 | 国产高清久久 | av中文在线影视 | 国产99久久久国产精品免费看 | 日本性生活免费看 | 欧美a性| 91av在线电影 | 中文字幕第一页在线播放 | 久久深爱网 | 亚洲在线视频免费观看 | 高清视频一区二区三区 | 四虎www. | 中文乱幕日产无线码1区 | 国产精品久久久久久久免费大片 | 亚洲电影久久久 | 久久成人国产精品一区二区 | 久久久久女人精品毛片九一 | 精品国产成人av | 久久久精品久久日韩一区综合 | 精品 激情 | 中文字幕九九 | 国产伦精品一区二区三区免费 | 黄色三级免费观看 | 日韩理论电影在线 | 国产女人40精品一区毛片视频 | 日韩av成人在线 | 日韩视频在线观看免费 | 蜜臀久久99精品久久久久久网站 | 91视频成人免费 | 免费在线黄色av | 九九热.com| 国产精品第一 | 色综合 久久精品 | 色姑娘综合 | 97人人看| 色综合久久88 | 中文字幕久久网 | 久久久精品久久 | 五月天色中色 | 久久dvd| 中文字幕一区二区三区在线播放 | 黄色av电影在线观看 | 视频在线一区二区三区 | www.国产在线观看 | www.玖玖玖 | 日韩xxxxxxxxx | 国产亚洲成人精品 | 国产成人一区二区三区电影 | 亚洲免费视频在线观看 | 亚洲视频 中文字幕 | 香蕉视频亚洲 | 青青河边草观看完整版高清 | 激情网站免费观看 | 欧美有色 | 国产不卡免费av | 波多野结衣精品 | 国偷自产视频一区二区久 | 日韩在线小视频 | 五月婷婷丁香色 | 久久伊人八月婷婷综合激情 | 国产精品一区免费看8c0m | 婷婷色吧 | 日批视频在线观看免费 | 欧美视频xxx| 久久精品中文字幕 | 欧美亚洲另类在线视频 | 91麻豆网站| 久久免费视频4 | 精品国产激情 | 国产免费看 | 国产黄色片免费观看 | 日韩免费成人 | 久草视频一区 | 日韩区视频 | 久久在线影院 | 亚洲黄色av | 成人av动漫在线观看 | 国产婷婷在线观看 | 日韩中文字幕国产 | 亚洲精品婷婷 | 日韩中文字幕免费电影 | 日本精品久久久久影院 | 国产九九九九九 | 天天爱天天操天天干 | 国产小视频在线 | 亚洲欧美日韩国产一区二区 | 中文免费在线观看 | 99精品国产福利在线观看免费 | 亚洲理论在线观看 | www..com黄色片 | 欧美黄色成人 | 日韩网站在线观看 | 九九免费精品视频 | 免费男女羞羞的视频网站中文字幕 | 一级大片在线观看 | 天天视频亚洲 | 亚洲精品视频网站在线观看 | 国产视频久久久久 | 天天干天天干天天操 | 99综合视频| 日日干影院 | 夜夜躁狠狠燥 | 色偷偷97 | 日本三级香港三级人妇99 | av免费电影在线观看 | 91一区啪爱嗯打偷拍欧美 | 中文字幕 第二区 | 久久99久久久久 | 96超碰在线 | 奇米影视四色8888 | 五月天中文字幕mv在线 | 国产精品孕妇 | 日本论理电影 | 婷婷视频在线播放 | 国产精品免费av | 麻豆免费视频网站 | 超碰在97 | 日韩国产精品毛片 | 天堂av在线 | 91aaa在线观看| 久久精品欧美日韩精品 | 天天操操操操操 | 久久国产精品网站 | 一区二区三区高清在线观看 | 综合久久久久久久久 | 亚洲日本在线视频观看 | 欧美日韩精品久久久 | 蜜臀av网址 | 欧美韩国日本在线观看 | 一区二区成人国产精品 | 天天射天天操天天色 | 手机在线看片日韩 | 日韩欧美一区二区三区在线 | 免费中文字幕 | 国产少妇在线观看 | 成人免费xxx在线观看 | 狠狠久久婷婷 | 在线香蕉视频 | 久久99视频精品 | 在线看黄色的网站 | 国产在线观看91 | 日本中文字幕在线视频 | av观看免费在线 | 国产一线二线三线在线观看 | av在观看| 欧美日韩二区在线 | 黄色免费在线视频 | 二区精品视频 | 夜夜躁狠狠躁日日躁 | 日韩在线中文字幕 | 久久综合婷婷国产二区高清 | 久久一区精品 | 色婷丁香 | 日本丶国产丶欧美色综合 | 日本性生活免费看 | 亚洲精品视频一二三 | 日本在线中文在线 | 色是在线视频 | www黄色 | 国产精品成人免费精品自在线观看 | 黄网站色欧美视频 | 人人澡人人舔 | 国产91学生粉嫩喷水 | 91麻豆精品国产91久久久久 | 中文字幕高清视频 | 玖玖999| 午夜精品久久久久久久99无限制 | 亚洲成a人片77777潘金莲 | 亚洲狠狠操 | 黄色av播放 | 午夜久久美女 | 日韩久久精品一区二区 | 久久久精品视频成人 | 欧美激情综合色 | 成年人免费av | 国产xxxx| 久久综合福利 | 正在播放国产一区 | 午夜国产福利在线 | 四虎国产精品免费观看视频优播 | 亚洲一级免费电影 | www.天天干.com | 中文字幕视频在线播放 | 欧美孕妇与黑人孕交 | 在线观看国产www | 黄色网址中文字幕 | 涩涩网站在线看 | 欧美日韩一区三区 | 中日韩免费视频 | 亚洲成av人片在线观看 | 丝袜足交在线 | 日韩视频中文字幕 | 99热手机在线观看 | 免费看片黄色 | 久9在线 | 国产在线综合视频 | 精品一区二区三区在线播放 | 久久精品视频中文字幕 | 视频在线观看一区 | 中文字幕 在线 一 二 | 天海翼一区二区三区免费 | 日韩国产精品一区 | 国产精品99久久免费黑人 | 久久论理 | 精品免费一区二区三区 | 国产1区2区3区精品美女 | 欧美精品久久天天躁 | 日韩午夜在线观看 | 69精品视频在线观看 | www.五月天婷婷 | 国产视频中文字幕在线观看 | 一级欧美一级日韩 | 国产成人精品综合久久久久99 | 99热亚洲精品 | 五月婷婷香蕉 | 中文字幕在线观看一区二区三区 | 欧美精品日韩 | 国产精品精品国产色婷婷 | 久久免费激情视频 | 亚洲精品国偷拍自产在线观看蜜桃 | 一区二区精品在线 | 中文字幕在线观看视频免费 | 国产欧美在线一区 | 欧美电影黄色 | 国产91区| 日本激情视频中文字幕 | 在线激情网| 欧美精品二| 久久亚洲国产精品 | 亚洲涩涩涩涩涩涩 | 日日干天夜夜 | 黄色天堂在线观看 | 欧美视频国产视频 | 久久成年人视频 | 日本免费久久高清视频 | 一 级 黄 色 片免费看的 | 久草免费资源 | 综合网天天色 | 国产精品区免费视频 | 中文字幕在线视频网站 | 日韩激情片在线观看 | 精品在线观看一区二区三区 | 91大神电影 | 国产又粗又硬又爽的视频 | 国产成人精品久久二区二区 | 久久精品91久久久久久再现 | 一区二区三区三区在线 | 中文字幕观看视频 | 久久国产精品视频免费看 | 婷婷伊人综合 | 婷婷色影院 | 天天爱天天操天天爽 | 91豆麻精品91久久久久久 | 五月天伊人 | 国产成人福利片 | 欧美精品久久久久久久久老牛影院 | 精久久久久 | 91免费视频国产 | 日韩电影在线一区二区 | 久久爱资源网 | 国产在线看一区 | 久久久久久美女 | 欧美日韩视频免费 | 久久久久久久久网站 | 美腿丝袜一区二区三区 | 久久久久国产一区二区三区四区 | 久久综合久久综合久久综合 | 久久久久麻豆v国产 | 中文字幕久久久精品 | 粉嫩av一区二区三区四区五区 | 精品中文字幕在线播放 | 欧美成人性网 | 国产二区视频在线 | 午夜精品99久久免费 | 2021国产视频| 国产精品爽爽久久久久久蜜臀 | 久久福利国产 | 九九免费观看视频 | 国产黄视频在线观看 | 久久综合成人网 | 亚洲电影一级黄 | 免费a视频在线 | 在线视频 影院 | 99久久99热这里只有精品 | 亚洲成a人片在线www | 在线观看日韩专区 | 久久99亚洲精品久久久久 | 免费看污的网站 | 亚洲不卡在线 | 久久久久久久久久久久av | 又污又黄网站 | 日韩电影一区二区三区在线观看 | 欧美久久久久久久久久久 | 成人亚洲精品久久久久 | 国产资源网 | www亚洲国产 | 免费成人短视频 | 久久久久久久影视 | 99久热在线精品视频 | 天天射天天艹 | 国产成人免费观看久久久 | 亚洲精品国产麻豆 | 久久99精品久久久久久久久久久久 | 91精品国产自产在线观看 | 91在线免费视频 | 五月婷婷中文网 | 欧美在线观看视频一区二区三区 | 久久男人中文字幕资源站 | 亚洲国产中文字幕 | 婷婷综合久久 | 色综合 久久精品 | 久久亚洲福利 | 亚洲国产操 | 午夜精品一区二区三区视频免费看 | 中文字幕日韩在线播放 | 香蕉网在线播放 | 国内毛片毛片 | 日韩免费看的电影 | 西西44人体做爰大胆视频 | 国产成人一区二区精品非洲 | 欧美日韩电影在线播放 | 最新av免费| 久久久久久免费 | 在线观看小视频 | 亚洲综合丁香 | 国产精品久久久久永久免费观看 | 91网页版在线观看 | 91毛片在线观看 | 高清一区二区三区 | 国模一二三区 | 亚洲精品福利视频 | 午夜影院一级 | 亚洲黄色激情小说 | 99久久国产免费,99久久国产免费大片 | www在线免费观看 | 亚洲视频精品 | 欧美日韩成人 | 激情一区二区三区欧美 | 久久伊人八月婷婷综合激情 | 五月激情在线 | 国产香蕉视频在线观看 | 99tvdz@gmail.com | 欧美日韩在线观看一区二区 | 中文伊人| 91av中文字幕 | 在线岛国av | 97日日| 国产高清成人av | 成 人 免费 黄 色 视频 | 99精品视频在线观看播放 | 91精品久久久久久粉嫩 | 久久精品久久精品久久39 | 久久久国产成人 | 97在线视频免费看 | 欧美黑人巨大xxxxx | 天海冀一区二区三区 | 91免费国产在线观看 | 亚洲一二三久久 | www.国产在线观看 | 探花视频在线观看免费版 | 中文字幕中文字幕中文字幕 | 91丨九色丨蝌蚪丰满 | 国产69久久精品成人看 | 国产精品一区二区久久精品爱涩 | 7777xxxx| 亚洲精品免费观看 | 久久久久在线 | 一区二区视频欧美 | 黄色的片子| 婷婷色综合 | 欧美一区二区精品在线 | 少妇性色午夜淫片aaaze | 国产成人久久 | 狠狠婷婷 | 激情视频综合网 | 免费看的黄色录像 | 在线免费观看麻豆视频 | 麻豆久久 | 深爱五月激情五月 | 女女av在线 | 中文在线天堂资源 | 午夜影院一区 | 亚洲天天摸日日摸天天欢 | av免费在线免费观看 | 久久97久久 | 国产高清专区 | 亚洲成人av一区 | 精品视频不卡 | 韩国一区二区av | 日精品| 欧美日韩在线观看不卡 | 国产精品久久久久久久7电影 | 欧美日韩国产高清视频 | 91色网址 | 97av视频 | 91精品久久久久久久久久入口 | 国产中文字幕亚洲 | 中文字幕在线观看免费高清完整版 | 婷婷久久五月 | 在线免费观看麻豆 | 日韩小视频 | 欧美日韩二区三区 | 精品高清美女精品国产区 | 欧洲亚洲国产视频 | 欧美色图视频一区 | 国产精品亚州 | 天天射天天爽 | 天天操比 | 美女视频黄免费网站 | 91在线看 | 黄污视频网站大全 | 91九色蝌蚪国产 | 色九九影院 | 日本久久久亚洲精品 | 亚洲色图 校园春色 | 国产视频1区2区3区 久久夜视频 | 日韩在线观看视频一区二区三区 | 日韩免费一区二区在线观看 | 国产欧美精品xxxx另类 | 免费视频一区 | 四虎成人精品 | 国产高清久久 | 91看片看淫黄大片 | 国内精品久久久久久久久久清纯 | 91九色精品国产 | 中文字幕在线一区观看 | 五月天激情在线 | 五月婷婷导航 | 中文电影网 | 最近字幕在线观看第一季 | 又黄又爽又刺激视频 | 一区二区三区四区久久 | 成人精品久久 | 久久久久女教师免费一区 | 天天天在线综合网 | 麻豆视频国产在线观看 | 啪啪资源 | 久久亚洲精品国产亚洲老地址 | av视屏在线 | 成年美女黄网站色大片免费看 | 99热九九这里只有精品10 | 美国av片在线观看 | 7777精品伊人久久久大香线蕉 | 亚洲国产精品一区二区尤物区 | 激情视频在线高清看 | 亚洲天堂色婷婷 | 欧美精品v国产精品 | 日韩av电影中文字幕在线观看 | 日韩在线第一 | 久久国产美女 | 亚洲精品国产精品99久久 | 狠狠狠色丁香婷婷综合久久88 | 久久免费福利 | 久久不卡免费视频 | 精品久久久久久国产偷窥 | 国产九色在线播放九色 | 四虎成人av | 五月婷婷一区二区三区 | 天天操天天舔天天干 | 久草网在线视频 | 久久国产精品久久w女人spa | 国产精品久久久久久欧美 | 十八岁以下禁止观看的1000个网站 | 久久久精品国产一区二区电影四季 | 在线欧美最极品的av | 婷婷丁香自拍 | 国产精品色 | 天天拍天天操 | 中国一 片免费观看 | 97人人添人澡人人爽超碰动图 | 成人资源站 | 欧美少妇xx | 天海翼一区二区三区免费 | 久久不射电影院 | 午夜av剧场 | 色婷婷狠狠五月综合天色拍 | 91你懂的| 天天狠狠 | 亚洲第一伊人 | 国外成人在线视频网站 | 四虎在线免费观看视频 | 久久久久久在线观看 | 色丁香久久 | 日韩有码中文字幕在线 | 午夜久操 | 综合激情| 天天干天天干天天色 | 一二区精品 | 国产精品毛片一区视频播不卡 | 久久综合在线 | 韩国av一区二区三区在线观看 | 操操碰 | 91麻豆传媒 | 亚洲国产精品免费 | 欧美人人 | 99免费精品| 国语黄色片| 一区二区三区免费在线观看视频 | 欧美日韩国产xxx | 国产亚洲成人网 | 91在线视频一区 | 国产精品手机在线观看 | 国产一区二区三区黄 | 国产看片免费 | 午夜123| 美女国内精品自产拍在线播放 | 欧美在线视频日韩 | 国产一区二区观看 | 91精品国自产在线观看 | 九色在线视频 | 91久久久久久久一区二区 | 亚洲国产日本 | 国产99久久久国产精品成人免费 | 亚洲天天做 | 99视频黄 | 天天干天天干天天干 | 蜜臀久久99精品久久久酒店新书 | 天天干,天天干 | 亚洲综合欧美激情 | 婷婷5月色 | 午夜视频在线瓜伦 | 亚洲精品99久久久久久 | 亚洲男男gⅴgay双龙 | 国产一二三四在线观看视频 | 国产精品手机播放 | 成人av动漫在线 | av免费高清观看 | 久久久久亚洲国产精品 | 激情综合五月天 | 国产精品剧情在线亚洲 | 一区二区视频免费在线观看 | 黄色三级免费观看 | 亚洲高清在线观看视频 | 国产精品久久久久久久久久白浆 | av久久在线 | 色婷婷亚洲 | av天天色| 久久涩视频 | 91豆花在线观看 | 夜夜躁日日躁狠狠躁 | 日韩一级电影网站 | 国产亚洲精品久久 | 成人黄色视 | 极品嫩模被强到高潮呻吟91 | 国产成人在线精品 | 国产精品99久久久久久宅男 | 999视频在线播放 | 天天操夜夜想 | 日本视频精品 | 国产日韩精品在线观看 | 97精品国产97久久久久久粉红 | 精品视频国产一区 | www激情网 | 精品视频99 | 丁香婷婷综合色啪 | 日日爱视频 | 国产成人精品一区二区三区在线 | 婷婷伊人综合亚洲综合网 | 欧美成人亚洲 | 在线观看视频你懂的 | 五月激情电影 | 中文字幕免费在线看 | 中文字幕成人 | 免费看黄色小说的网站 | 99久久99久久精品国产片果冰 | 亚洲视频 在线观看 | 亚洲一级片免费观看 | av高清一区二区三区 | 国产一区精品在线 | 亚洲欧美视频在线观看 | 欧美最爽乱淫视频播放 | 欧美贵妇性狂欢 | 在线免费观看羞羞视频 | 国产精品久久久久久婷婷天堂 | 91看片看淫黄大片 | 亚洲女同videos | 免费视频资源 | 亚洲va欧美va人人爽春色影视 | 亚洲综合一区二区精品导航 | 亚洲三级在线免费观看 | 天天操天天射天天舔 | 亚洲国产午夜视频 | 欧美一级裸体视频 | 四虎最新入口 | 亚洲午夜久久久久久久久久久 | 97在线观看免费观看 | 又黄又爽又湿又无遮挡的在线视频 | 97人人超 | 在线视频日韩 | 国产精品毛片网 | 九九热在线免费观看 | 国产专区精品视频 | 日日操日日插 | 麻花豆传媒mv在线观看网站 | 国产精品久久久久久久久久不蜜月 | 久久不卡国产精品一区二区 | 日本性视频 | 91热| 久草久草在线观看 | 亚洲成aⅴ人片久久青草影院 | av在线一级| 色综合婷婷| 偷拍精品一区二区三区 | 亚洲 欧美 精品 | 粉嫩一区二区三区粉嫩91 | 国产成人综合精品 | 天天射天天艹 | 人人干人人爽 | 久久伊人精品一区二区三区 | 992tv人人草| 国产成人在线免费观看 | 韩日色视频 | 国产精品久久久久久吹潮天美传媒 | 日本久久影视 | 欧美a级成人淫片免费看 | 国产精品欧美久久 | 91专区在线观看 | 国产一区二区午夜 | 成人影视免费看 | 日韩一区视频在线 | 91久久久久久国产精品 | 综合色亚洲 | 日韩一区精品 | 最近av在线| 天天干,天天射,天天操,天天摸 | 欧美综合色在线图区 | 操操操操网 | 91精品国产自产老师啪 | 久久99国产一区二区三区 | 欧美性天天 | 中文字幕专区高清在线观看 | 密桃av在线 | 免费a视频在线 | 伊人中文字幕在线 | 久久精选视频 | 伊人久久国产精品 | www视频在线观看 | 在线欧美国产 | 9在线观看免费高清完整 | 狠狠五月天 | 国产精品福利小视频 | 国产成人资源 | 91污在线| 国产麻豆精品传媒av国产下载 | 午夜精品福利一区二区三区蜜桃 | 久久久午夜精品理论片中文字幕 | 亚洲黑丝少妇 | 日韩亚洲欧美中文字幕 | 四虎国产精 | 人人插人人费 | 五月黄色 | 综合久久综合久久 | 操操操操网 | 九九热视频在线免费观看 | 777奇米四色 | 亚洲精选国产 | 精品九九九九 | 不卡av在线 | 日韩黄在线观看 | 天天操天天操天天操天天 | 成人免费大片黄在线播放 | 国产精品女同一区二区三区久久夜 | 国产精品免费小视频 | 亚洲日韩中文字幕 | 色com网 | 成人av亚洲| 久久国产免费视频 | 亚洲每日更新 | 99久久er热在这里只有精品15 | 日日夜夜天天久久 | 精品av网站| 日本资源中文字幕在线 | 在线国产高清 | 国内精品久久久久久久久 | 丁香婷婷激情 | 亚洲日本欧美在线 | av在线电影播放 | 国产精品对白一区二区三区 | 人人射人人爽 | 国模视频一区二区 | 午夜天使 | 亚洲三级在线 | 国产不卡在线观看 | 成人在线视频在线观看 | 九九久久免费视频 | 欧日韩在线视频 | 日本久久91 | 久久成人麻豆午夜电影 | 精品久久久久久久久亚洲 | 天天干天天天天 | av免费看在线 | 99视频在线精品免费观看2 | 日韩视频专区 | 国产欧美在线一区 | 成年美女黄网站色大片免费看 | 亚洲激情精品 | 日韩av资源在线观看 | 日韩高清免费在线观看 | 亚洲精品国产成人av在线 | 成人a视频在线观看 | 国产一卡久久电影永久 | 日本aaa在线观看 | 91喷水| 久久国产一区二区 | 亚洲 中文字幕av | 91成人精品观看 | 欧美激情视频在线观看免费 | av福利免费 | 一本色道久久综合亚洲二区三区 | 国产 成人 久久 | 久草在线视频精品 | 欧美日韩亚洲在线观看 | 成年人看片 | 国产黄av| 毛片基地黄久久久久久天堂 | 国产视频一区在线播放 |