3atv精品不卡视频,97人人超碰国产精品最新,中文字幕av一区二区三区人妻少妇,久久久精品波多野结衣,日韩一区二区三区精品

歡迎訪問 生活随笔!

生活随笔

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

c/c++

C++数据结构,三万字详解(强烈建议收藏)

發(fā)布時間:2023/12/20 c/c++ 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++数据结构,三万字详解(强烈建议收藏) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

C++常用數(shù)據(jù)結(jié)構(gòu)
鏈表內(nèi)存的申請與釋放滑動窗口前綴和/積與后綴和/積差分數(shù)組線段樹前綴樹/字典樹(Trie)單調(diào)棧單調(diào)隊列并查集二叉樹創(chuàng)建二叉樹二叉樹的遍歷二叉樹遍歷的變體平衡二叉樹(AVL)與二叉搜索樹N叉樹圖拓撲排序鏈表鏈表(單鏈表)的基本操作及C語言實現(xiàn)鏈表中存放的不是基本數(shù)據(jù)類型,需要用結(jié)構(gòu)體實現(xiàn)自定義:typedef struct Link{ char elem;//代表數(shù)據(jù)域 struct Link * next;//代表指針域,指向直接后繼元素}link;12345next的值實際上就是下一個節(jié)點的地址,當前節(jié)點為末節(jié)點時,next的值設(shè)為空指針。像上面這種只包含一個指針域、由n個節(jié)點鏈接形成的鏈表,就稱為線型鏈表或者單向鏈表,鏈表只能順序訪問,不能隨機訪問,鏈表這種存儲方式最大缺點就是容易出現(xiàn)斷鏈。頭結(jié)點和頭指針的區(qū)別:頭指針是一個指針,頭指針指向鏈表的頭結(jié)點或者首元結(jié)點;頭結(jié)點是一個實際存在的結(jié)點,它包含有數(shù)據(jù)域和指針域。兩者在程序中的直接體現(xiàn)就是:頭指針只聲明而沒有分配存儲空間,頭結(jié)點進行了聲明并分配了一個結(jié)點的實際物理內(nèi)存。單鏈表中可以沒有頭結(jié)點,但是不能沒有頭指針!單向鏈表+頭指針+尾指針:struct ListNode { int val; ListNode next; ListNode() : val(0), next(nullptr) {} ListNode(int x) : val(x), next(nullptr) {} ListNode(int x, ListNode next) : val(x), next(next) {} };ListNode head = nullptr, tail = nullptr;//從尾部插入結(jié)點head = tail = new ListNode(num1);tail->next = new ListNode(num2);tail = tail->next;123456789101112注意:nullptr在C++11中就是代表空指針,不能被轉(zhuǎn)換成數(shù)字。在編譯器進行解釋程序時,NULL會被直接解釋成0。鏈表的題通常需要注意幾點:舍得用變量,千萬別想著節(jié)省變量,否則容易被邏輯繞暈head 有可能需要改動時,先增加一個 假head,返回的時候直接取 假head.next,這樣就不需要為修改 head 增加一大堆邏輯了。while(p->next&&p->next->next)while(p->next&&p->next->val==x)p->next必須要寫在前面ListNode k=new ListNode(0,head);//不要省建立頭結(jié)點的功夫此外還需要注意,能用f作為判定條件,就盡量不要以f->next作為判定條件,若f直接為空指針,會直接炸掉。這里涉及到短路或、短路與的概念。//盡量不要以f->next作為判定條件,若f直接為空指針,會直接炸掉下面這個方法不好 while(f->next&&i<index-1) { f=f->next; i++; } //改成下面的樣子比較好NodeList f =head;int i=0;while(f&&i<index-1){ f=f->next; i++;}if(!f)//超出鏈表范圍則退出{ return;}if(f->next){ NodeList m=f->next; f->next=m->next; delete m;//delete與new匹配}1234567891011121314151617181920212223242526單向鏈表常用的初始化://單向鏈表常用的初始化class MyLinkedList {private: struct NodeList { int val; NodeList next; NodeList():val(0),next(nullptr){}//{} NodeList(int n):val(n),next(nullptr){} };//; NodeList * head;public: MyLinkedList():head(nullptr) {}//默認構(gòu)造函數(shù),調(diào)用時不用加() Main函數(shù)調(diào)用MyLinkedList list;//不需要(),加括號會被誤認為調(diào)用函數(shù)123456789101112131415C++雙向鏈表模板://C++雙向鏈表模板class MyList{private: struct ListNode { int val; ListNode next,prev; ListNode(int x):val(x),next(nullptr),prev(nullptr){} };private: //頭節(jié)點尾節(jié)點都為空,表示為空鏈表 ListNode head,tail; int size=0;public: MyList():size(0),head(nullptr),tail(nullptr){}12345678910111213141516反轉(zhuǎn)鏈表:從前往后挨著元素反轉(zhuǎn),并記錄反轉(zhuǎn)頭prev,剩下未反轉(zhuǎn)部分的頭curr,以及下一個元素next。直到剩下未反轉(zhuǎn)頭curr為空。Prev初始值也為空,curr初始值為head。ListNode reverseList(ListNode head) { ListNode pre = nullptr; ListNode cur = head; ListNode nex ; while(cur) { nex = cur->next;//提前該語句 cur->next=pre; pre=cur; cur=nex; // nex = cur->next;//當cur為空指針時該語句會報錯,運行超時,需要將該語句提前 } return pre; }123456789101112131415易錯點是while判定條件里next需要提前寫,將實際遍歷的結(jié)點作為判定條件,否則容易runtime error。內(nèi)存的申請與釋放free和delete區(qū)別_prerfect_cat的博客free和mall匹配:釋放malloc出來動態(tài)內(nèi)存;delete和new匹配:釋放new出來的動態(tài)內(nèi)存空間。在類和對象的時候會有很大區(qū)別。在使用malloc和free來處理動態(tài)內(nèi)存的時候,僅僅是釋放了這個對象所占的內(nèi)存,而不會調(diào)用這個對象的析構(gòu)函數(shù);使用new和delete就可以既釋放對象的內(nèi)存的同時,調(diào)用這個對象的析構(gòu)函數(shù)。delete釋放對象數(shù)組時:千萬不能丟失”[]”
如果用new 創(chuàng)建對象數(shù)組,那么只能使用對象的無參數(shù)構(gòu)造函數(shù)。例如Obj objects = new Obj[100];
// 創(chuàng)建100 個動態(tài)對象1在用delete 釋放對象數(shù)組時,留意不要丟了符號‘[ ]’。
例如delete []objects; // 正確的用法delete objects; // 錯誤的用法12后者相當于delete objects[0],漏掉了另外99 個對象。new出來的是一段空間的首地址。所以一般需要用指針來存放這段地址。 //可以在new后面直接賦值 int p = new int(3); //也可以單獨賦值 //p = 3; //如果不想使用指針,可以定義一個變量,在new之前用“”表示new出來的內(nèi)容 int q = new int; //當new一個數(shù)組時,同樣用一個指針接住數(shù)組的首地址 int q = new int[3];12345678//這里是用一個結(jié)構(gòu)體指針接住結(jié)構(gòu)體數(shù)組的首地址//對于結(jié)構(gòu)體指針,個人認為目前這種賦值方法比較方便struct student{ string name; int score;};student stlist = new student[3]{{“abc”, 90}, {“bac”, 78}, {“ccd”, 93}};12345678滑動窗口什么是滑動窗口?其實就是一個隊列,比如下面例題中的字符串 abcabcbb,進入這個隊列(窗口)為 abc 滿足題目要求,當再進入 a,隊列變成了 abca,這時候不滿足要求。所以,我們要移動這個隊列!如何移動?我們只要把隊列的左邊的元素移出就行了,直到滿足題目要求!一直維持這樣的隊列,找出隊列出現(xiàn)最長的長度時候,求出解!時間復(fù)雜度:O(n)3. 無重復(fù)字符的最長子串給定一個字符串 s ,請你找出其中不含有重復(fù)字符的 最長子串 的長度。示例:輸入: s = “pwwkew”輸出: 3解釋: 因為無重復(fù)字符的最長子串是 “wke”,所以其長度為 3。請注意,你的答案必須是 子串 的長度,“pwke” 是一個子序列,不是子串?!痉治觥坑没瑒哟翱?#xff0c;固定最左邊 l,每次都從最右邊 r 開始擴張,出現(xiàn)重復(fù)元素時,刪除哈希集合中從 l 到重復(fù)元素下標之間的元素,將 l 進行更新,并繼續(xù)向右擴張 r 。關(guān)鍵點:如果依次遞增地枚舉子串的起始位置,那么子串的結(jié)束位置也是遞增的!因為當前結(jié)束位置前面都是無重復(fù)子串了,刪掉最左邊起始位置后,剩下的這一截更是無重復(fù)子串,所以每次移動右窗口指針時候只需要從上次結(jié)束位置開始就行。用哈希集合判斷重復(fù)。 int lengthOfLongestSubstring(string s) { if(s.empty()) return 0; int n = s.size(); unordered_set st; int l = 0, maxlen = 0; for(int r = 0; r < n; ++r){ //刪除哈希集合中從 l 到重復(fù)元素下標之間的元素,將 l 進行更新 while(st.find(s[r]) != st.end()){ st.erase(s[l]); ++l; } //每次右移r時,就更新一下最長長度, //以免出現(xiàn)整個字符串都無重復(fù),遍歷到頭一直沒更新長度的情況 maxlen = max(r - l + 1, maxlen); st.insert(s[r]); } return maxlen; }123456789101112131415161718也可以用哈希表實現(xiàn),用哈希表記錄每個元素出現(xiàn)的下標,可以精確知道刪除重復(fù)元素時的循環(huán)次數(shù)。 int lengthOfLongestSubstring(string s) { if(s.empty()) return 0; int n = s.size(); unordered_map<char, int> mp; //每次固定l, 右移r,出現(xiàn)重復(fù)元素時再更新l int l = 0, maxlen = 0; for(int r = 0; r < n; ++r){ //若發(fā)現(xiàn)重復(fù)字符,則通過哈希表找到第一個重復(fù)下標 //刪除從l到重復(fù)下標之間的哈希表元素,并將l重置為重復(fù)下標的下一個位置 if(mp.find(s[r]) != mp.end()){ int newl = mp[s[r]] + 1; for(int i = l; i < newl; i++){ mp.erase(s[i]); } l = newl; } //每次右移r時,就更新一下最長長度, //以免出現(xiàn)整個字符串都無重復(fù),遍歷到頭一直沒更新長度的情況 maxlen = max(r - l + 1, maxlen); mp[s[r]] = r;; } return maxlen; }123456789101112131415161718192021222376. 最小覆蓋子串給你一個字符串 s 、一個字符串 t 。返回 s 中涵蓋 t 所有字符的最小子串。如果 s 中不存在涵蓋 t 所有字符的子串,則返回空字符串 “” 。注意:對于 t 中重復(fù)字符,我們尋找的子字符串中該字符數(shù)量必須不少于 t 中該字符數(shù)量。如果 s 中存在這樣的子串,我們保證它是唯一的答案。示例 1:輸入:s = “ADOBECODEBANC”, t = “ABC”輸出:“BANC”【分析】滑動窗口我們可以用滑動窗口的思想解決這個問題。在滑動窗口類型的問題中都會有兩個指針,一個用于「延伸」現(xiàn)有窗口的 r 指針,和一個用于「收縮」窗口的 l 指針。在任意時刻,只有一個指針運動,而另一個保持靜止。我們在 s 上滑動窗口,通過移動 r 指針不斷擴張窗口。當窗口包含 t 全部所需的字符后,如果能收縮,我們就收縮窗口直到得到最小窗口。如何判斷當前的窗口包含所有 t 所需的字符呢?我們可以用一個哈希表表示 t 中所有的字符以及它們的個數(shù),用一個哈希表動態(tài)維護窗口中所有的字符以及它們的個數(shù),如果這個動態(tài)表中包含 t 的哈希表中的所有字符,并且對應(yīng)的個數(shù)都不小于 t 的哈希表中各個字符的個數(shù),那么當前的窗口是「可行」的。注意:這里 t 中可能出現(xiàn)重復(fù)的字符,所以我們要記錄字符的個數(shù)。舉個例子:如果 s = X X ? X A B C X X X X s = {\rm XX \cdots XABCXXXX}s=XX?XABCXXXX,t = A B C t = {\rm ABC}t=ABC,那么顯然 [ X X ? X A B C ] {\rm [XX \cdots XABC]}[XX?XABC] 是第一個得到的「可行」區(qū)間,得到這個可行區(qū)間后,我們按照「收縮」窗口的原則更新左邊界,得到最小區(qū)間。 unordered_map<char, int> ori, cnt; bool check(){ for(const auto& f:ori){ if(cnt[f.first] < f.second){ return false; } } return true; } string minWindow(string s, string t) { for(const char& c:t){ ori[c]++; } int l = 0, r = 0, ansl = -1; int len = INT_MAX, n = s.size(); while(r < n){ if(ori.find(s[r]) != ori.end()){ cnt[s[r]]++; } ++r; while(check() && l <= r){ if(r - l < len){ len = r - l; ansl = l; } if(ori.find(s[l]) != ori.end()){ cnt[s[l]]–; } ++l; } } return ansl == -1 ? string() : s.substr(ansl, len); }12345678910111213141516171819202122232425262728293031323334353637383940其他滑動窗口例題:滑動窗口講解438. 找到字符串中所有字母異位詞30. 串聯(lián)所有單詞的子串76. 最小覆蓋子串159. 至多包含兩個不同字符的最長子串209. 長度最小的子數(shù)組239. 滑動窗口最大值567. 字符串的排列632. 最小區(qū)間727. 最小窗口子序列例題講解:438. 找到字符串中所有字母異位詞給定兩個字符串 s 和 p,找到 s 中所有 p 的 異位詞 的子串,返回這些子串的起始索引。不考慮答案輸出的順序。異位詞 指由相同字母重排列形成的字符串(包括相同的字符串)。示例 1:輸入: s = “cbaebabacd”, p = “abc”輸出: [0,6]解釋: 起始索引等于 0 的子串是 “cba”, 它是"abc" 的異位詞。 起始索引等于 6 的子串是 “bac”, 它是 “abc” 的異位詞?!痉治觥吭谧址?s 中構(gòu)造一個長度為與字符串 p 的長度相同的滑動窗口,并在滑動中維護窗口中每種字母的數(shù)量;當窗口中每種字母的數(shù)量與字符串 p 中每種字母的數(shù)量相同時,則說明當前窗口為字符串 p 的異位詞。在算法的實現(xiàn)中,可以使用數(shù)組來存儲字符串 pp 和滑動窗口中每種字母的數(shù)量?!炯毠?jié)】當字符串 s 的長度小于字符串 p 的長度時,字符串 s 中一定不存在字符串 p 的異位詞。但是因為字符串 s 中無法構(gòu)造長度與字符串 p 的長度相同的窗口,所以這種情況需要單獨處理。此外,比較兩個數(shù)組是否相等時,可以直接用 “數(shù)組1 == 數(shù)組2” 來判斷。 vector findAnagrams(string s, string p) { int m = p.size(), n = s.size(); if(n < m) return {}; vector ans; vector scount(26); vector pcount(26); for(int i = 0; i < m; ++i){ ++scount[s[i] - ‘a(chǎn)’]; ++pcount[p[i] - ‘a(chǎn)’]; } for(int l = 0; l + m <= n; ++l){ if(l != 0){ ++scount[s[l + m -1] - ‘a(chǎn)’]; --scount[s[l - 1] - ‘a(chǎn)’]; } //判斷兩個數(shù)組是否相等,可以直接用 == if(scount == pcount){ ans.emplace_back(l); } } return ans; }12345678910111213141516171819202122下面第30題的過渡版寫法:用了一個哈希表來進出字符,初始時先存p的哈希值,再減去s中第一個窗口的哈希值,之后對s進行窗口滑動,以及哈希表字符進出,當字符鍵值為0時刪除該字符,當哈希表為空時表示匹配成功,可以存入輸出數(shù)組。 vector findAnagrams(string s, string p) { vector ans; unordered_map<char, int> mp; int m = p.size(), n = s.size(); //用字符串 p 來初始化哈希表 for(char &ch : p){ ++mp[ch]; } //字符串 s 的首個窗口 for(int i = 0; i < m && i < n; ++i){ if(–mp[s[i]] == 0){ mp.erase(s[i]); } } //對字符串 s 進行滑動窗口 for(int l = 0; l + m <= n; ++l){ if(l != 0){ //注意這里的++ 與 --特別容易搞混 if(–mp[s[l + m - 1]] == 0) mp.erase(s[l + m - 1]); if(++mp[s[l - 1]] == 0) mp.erase(s[l - 1]); } if(mp.empty()){ ans.emplace_back(l); } } return ans; }12345678910111213141516171819202122232425262730. 串聯(lián)所有單詞的子串給定一個字符串 s 和一些 長度相同 的單詞 words 。找出 s 中恰好可以由 words 中所有單詞串聯(lián)形成的子串的起始位置。注意子串要與 words 中的單詞完全匹配,中間不能有其他字符 ,但不需要考慮 words 中單詞串聯(lián)的順序。示例 1:輸入:s = “barfoothefoobarman”, words = [“foo”,“bar”]輸出:[0,9]解釋:從索引 0 和 9 開始的子串分別是 “barfoo” 和 “foobar” 。 輸出的順序不重要, [9,0] 也是有效答案?!痉治觥坑?words \textit{words}words 的長度為 m mm,words \textit{words}words 中每個單詞的長度為 n nn,s ss 的長度為 ls \textit{ls}ls。首先需要將 s ss 劃分為單詞組,每個單詞的大小均為 n nn (首尾除外)。這樣的劃分方法有 n nn 種,即先刪去前 i ii (i = 0 ~ n ? 1 i = 0 \sim n-1i=0~n?1)個字母后,將剩下的字母進行劃分,如果末尾有不到 n nn 個字母也刪去。對這 n nn 種劃分得到的單詞數(shù)組分別使用滑動窗口對 words \textit{words}words 進行類似于「字母異位詞」的搜尋。劃分成單詞組后,一個窗口包含 s ss 中前 m mm 個單詞,用一個哈希表 differ \textit{differ}differ 表示窗口中單詞頻次和 words \textit{words}words 中單詞頻次之差。初始化 differ \textit{differ}differ 時,出現(xiàn)在窗口中的單詞,每出現(xiàn)一次,相應(yīng)的值增加 1,出現(xiàn)在 words \textit{words}words 中的單詞,每出現(xiàn)一次,相應(yīng)的值減少 1。然后將窗口右移,右側(cè)會加入一個單詞,左側(cè)會移出一個單詞,并對 differ \textit{differ}differ 做相應(yīng)的更新。窗口移動時,若出現(xiàn) differ \textit{differ}differ 中值不為 0 的鍵的數(shù)量為 0,則表示這個窗口中的單詞頻次和 words \textit{words}words 中單詞頻次相同,窗口的左端點是一個待求的起始位置。劃分的方法有 n nn 種,做 n nn 次滑動窗口后,即可找到所有的起始位置。 vector findSubstring(string s, vector& words) { vector ans; int m = words.size(); int n = words[0].size(); int ls = s.size(); //注意添加&& i + m * n 長度限制 for(int i = 0; i < n && i + m * n <= ls; ++i){ unordered_map<string, int> mp; //現(xiàn)將 s 中前 m 個單詞作為初始化窗口 for(int j = 0; j < m; ++j){ string str = s.substr(i + j * n, n);//注意添加起始位置,i + mp[str]++; } for(string &str : words){ if(–mp[str] == 0){ mp.erase(str); } } //向后邊滑動窗口 for(int l = i; l + m * n <= ls; l += n){ if(l != i){ string str = s.substr(l - n, n); if(–mp[str] == 0){ mp.erase(str); } str = s.substr(l + (m - 1) * n, n); if(++mp[str] == 0){ // == 0 mp.erase(str); } } if(mp.empty()){ ans.emplace_back(l); } } } return ans; }12345678910111213141516171819202122232425262728293031323334353637前綴和/積與后綴和/積前綴和/積與后綴和/積不是什么數(shù)據(jù)結(jié)構(gòu),而是一種常用的技巧。常用于查詢連續(xù)區(qū)間和是否為k,以及區(qū)間值運算等問題。前綴和經(jīng)常和哈希表結(jié)合,這樣可以將查詢的操作提升到O(1), 但是使用前綴和會有一個問題,當我們的更新次數(shù)過多時,尤其是需要更新的元素比較靠前時,每一次更新的代價都會為O(n),從而沒有達到優(yōu)化的效果。前綴和適用于元素不變動的數(shù)組!前綴和非常經(jīng)典的一道好題:560. 和為 K 的子數(shù)組給你一個整數(shù)數(shù)組 nums 和一個整數(shù) k ,請你統(tǒng)計并返回 該數(shù)組中和為 k 的子數(shù)組的個數(shù) 。示例 1:輸入:nums = [1,1,1], k = 2輸出:2示例 2:輸入:nums = [1,2,3], k = 3輸出:2【分析】前綴和 + 哈希表優(yōu)化定義 pre [ i ] \textit{pre}[i]pre[i] 為 [ 0… i ] [0…i][0…i] 里所有數(shù)的和,我們需要統(tǒng)計符合條件的下標 j jj 的個數(shù),其中 0 ≤ j ≤ i 0\leq j\leq i0≤j≤i 且 [ j . . i ] [j…i][j…i] 這個子數(shù)組的和恰好為 k kk ??紤]以 i ii 結(jié)尾的和為 k kk 的連續(xù)子數(shù)組個數(shù)時只要統(tǒng)計有多少個前綴和為 pre [ i ] ? k \textit{pre}[i]-kpre[i]?k 的 pre [ j ] \textit{pre}[j]pre[j] 即可。我們建立哈希表 mp \textit{mp}mp,以和為鍵,出現(xiàn)次數(shù)為對應(yīng)的值,記錄 pre [ i ] \textit{pre}[i]pre[i] 出現(xiàn)的次數(shù),從左往右邊更新 mp \textit{mp}mp 邊計算答案,那么以 i ii 結(jié)尾的答案 mp [ pre [ i ] ? k ] \textit{mp}[\textit{pre}[i]-k]mp[pre[i]?k] 即可在 O ( 1 ) O(1)O(1) 時間內(nèi)得到。最后的答案即為所有下標結(jié)尾的和為 k kk 的子數(shù)組個數(shù)之和。需要注意的是,從左往右邊更新邊計算的時候已經(jīng)保證了mp [ pre [ i ] ? k ] \textit{mp}[\textit{pre}[i]-k]mp[pre[i]?k] 里記錄的 pre [ j ] \textit{pre}[j]pre[j] 的下標范圍是 0 ≤ j ≤ i 0\leq j\leq i0≤j≤i 。同時,由于pre [ i ] \textit{pre}[i]pre[i] 的計算只與前一項的答案有關(guān),因此我們可以不用建立 pre \textit{pre}pre 數(shù)組,直接用 pre \textit{pre}pre 變量來記錄 p r e [ i ? 1 ] pre[i-1]pre[i?1] 的答案即可。 int subarraySum(vector& nums, int k) { unordered_map<int, int> mp; mp[0] = 1; int pre = 0, ans = 0; for(int &a:nums){ pre += a; ans += mp[pre - k]; //if (mp.find(pre - k) != mp.end()) mp[pre]++; } return ans; }1234567891011前綴積與后綴積的經(jīng)典例題:劍指 Offer 66. 構(gòu)建乘積數(shù)組給定一個數(shù)組 A[0,1,…,n-1],請構(gòu)建一個數(shù)組 B[0,1,…,n-1],其中 B[i] 的值是數(shù)組 A 中除了下標 i 以外的元素的積, 即 B[i]=A[0]×A[1]×…×A[i-1]×A[i+1]×…×A[n-1]。不能使用除法。示例:輸入: [1,2,3,4,5]輸出: [120,60,40,30,24]【分析】我們不必將所有數(shù)字的乘積除以給定索引處的數(shù)字得到相應(yīng)的答案,而是利用索引左側(cè)所有數(shù)字的乘積和右側(cè)所有數(shù)字的乘積(即前綴與后綴)相乘得到答案。對于給定索引 i ii,我們將使用它左邊所有數(shù)字的乘積乘以右邊所有數(shù)字的乘積。由于輸出數(shù)組不算在空間復(fù)雜度內(nèi),所以可以先利用輸出數(shù)組作為前綴和數(shù)組,然后再在輸出數(shù)組的基礎(chǔ)上×后綴和(用一個變量表示即可),從而大大節(jié)省空間。算法1)初始化 ans 數(shù)組,對于給定索引 i,a n s [ i ] ans[i]ans[i] 代表的是 i 左側(cè)所有數(shù)字的乘積。2)不用構(gòu)造后綴和數(shù)組,而是用一個變量 r rr 表示索引 i 右側(cè)數(shù)字的乘積。通過遍歷來不斷更新右側(cè)元素的乘積 r 。更新數(shù)組 a n s [ i ] = a n s [ i ] ? r ans[i]=ans[i]rans[i]=ans[i]?r ,然后 r rr 更新為 r = r ? a [ i ] r=ra[i]r=r?a[i]。 vector constructArr(vector& a) { int n = a.size(); vector ans(n); if(a.empty()) return ans; // ans[i] 表示索引 i 左側(cè)所有元素的乘積 // 因為索引為 ‘0’ 的元素左側(cè)沒有元素, 所以 ans[0] = 1 ans[0] = 1; for(int i = 1; i < n; ++i){ ans[i] = ans[i - 1] * a[i - 1]; } // r 為右側(cè)所有元素的乘積 // 剛開始右邊沒有元素,所以 r = 1 int r = 1; for(int i = n - 1; i >= 0; --i){ // 對于索引 i,左邊的乘積為 ans[i],右邊的乘積為 r ans[i] = r; // r 需要包含右邊所有的乘積,所以計算下一個結(jié)果時需要將當前值乘到 r 上 r = a[i]; } return ans; }123456789101112131415161718192021差分數(shù)組差分數(shù)組又叫插旗法,利用差分前綴和來求解公交車上下車和插旗問題等區(qū)間更新、區(qū)間重疊(活動安排)問題。差分數(shù)組是把原數(shù)組中后一個元素減前一個元素的差構(gòu)成一個新的數(shù)組,作為輔助數(shù)組使用。通常用map 數(shù)據(jù)結(jié)構(gòu)實現(xiàn),如下圖所示:差分數(shù)組有什么用?diff[0] = nums[0];diff[1] = nums[1] - nums[0];diff[2] = nums[2] - nums[1];…nums[0] = diff[0];nums[1] = diff[1] + nums[0] = diff[0] + diff[1];nums[2] = nums[1] + diff[2] = diff[0] + diff[1] + diff[2];…nums[n] = diff[0] + diff[1] +diff[2] +…+ diff[n]由上可知:根據(jù)差分數(shù)組各項的前綴和,即可還原出原數(shù)組的各值,差分數(shù)組常用于對區(qū)間內(nèi)元素值的統(tǒng)一修改。 假設(shè)我們頻繁得對原數(shù)組進行范圍更新,則只需要更新差分數(shù)組端點值即可。應(yīng)用舉例1:假如把 nums 數(shù)組中 [0,3] 范圍到元素值都加 2:常規(guī)方法:for( int i =0;i < 4;++i){ nums[i] += 2;}1234差分數(shù)組:map<int, int> diff;diff[0] += 2;// 0 往后到值全部加 2diff[4] -= 2;// 4 往后到值全部減 2123應(yīng)用舉例2:在區(qū)間 [10, 15) [12, 18) 內(nèi)進行插旗,判斷插旗區(qū)間是否有重疊。插旗子 計數(shù):對于每個區(qū)間[start,end),在 start 計數(shù)diff[start] 加 1,表示從start 開始插旗的數(shù)目加 1;從 end 計數(shù)diff[end] 減 1,表示從 end 開始插旗的數(shù)目減 1。若差分數(shù)組前綴和 >1 即表示到當前位置為止的插旗區(qū)有重疊。區(qū)間原數(shù)組nums 10 12 15 18差分數(shù)組diff 1 1 -1 -1【分析】建立差分數(shù)組diff,nums數(shù)組中的每個區(qū)間的start對應(yīng)的差分數(shù)組計數(shù) ++, end 對應(yīng)的差分數(shù)組計數(shù) – ,注意每個區(qū)間的start 和 end 是分別作為獨立key 存儲到查分數(shù)組中的,對應(yīng)的value分別為++和–之后的值 ,而不是start 對應(yīng) key,end 對應(yīng)value這樣存儲。所有區(qū)間的 start 和 end 存儲到 map 中后,一起按照key從大到小的順序排序//nums = {{10, 15}, {12, 18}}//建立差分數(shù)組diff,每個區(qū)間的start對應(yīng)的差分數(shù)組計數(shù) ++, end 對應(yīng)的差分數(shù)組計數(shù) --//注意每個區(qū)間的start 和 end 是分別作為獨立key 存儲到查分數(shù)組中的,對應(yīng)的value分別為++和–之后的值//而不是start 對應(yīng) key,end 對應(yīng)value這樣存儲。//所有區(qū)間的 start 和 end 存儲到 map 中后,一起按照key從大到小的順序排序map<int, int> diff;for(auto v:nums){ diff[v[0]] ++; diff[v[1]] --;}//遍歷差分數(shù)組,用cnt進行插旗計數(shù),大于1則說明區(qū)間重疊int cnt = 0;for(auto w:diff){ cnt += w.second; if(cnt > 1){ cout <<“插旗區(qū)間出現(xiàn)重疊” <<endl; break; }} 12345678910111213141516171819如果 兩個Interval 不相交,則 連續(xù)兩個 插旗計數(shù)的 和 必然等于零,一個+1,一個-1如果 兩個 Interval 相交,則 連續(xù)兩個插旗計數(shù) 的和 必然大于0,一個+1,一個+1732. 我的日程安排表 III當 k 個日程安排有一些時間上的交叉時(例如 k 個日程安排都在同一時間內(nèi)),就會產(chǎn)生 k 次預(yù)訂。給你一些日程安排 [start, end) ,請你在每個日程安排添加后,返回一個整數(shù) k ,表示所有先前日程安排會產(chǎn)生的最大 k 次預(yù)訂。實現(xiàn)一個 MyCalendarThree 類來存放你的日程安排,你可以一直添加新的日程安排。MyCalendarThree() 初始化對象。int book(int start, int end) 返回一個整數(shù) k ,表示日歷中存在的 k 次預(yù)訂的最大值。示例:輸入:[“MyCalendarThree”, “book”, “book”, “book”, “book”, “book”, “book”][[], [10, 20], [50, 60], [10, 40], [5, 15], [5, 10], [25, 55]]輸出:[null, 1, 1, 2, 3, 3, 3]解釋:MyCalendarThree myCalendarThree = new MyCalendarThree();myCalendarThree.book(10, 20); // 返回 1 ,第一個日程安排可以預(yù)訂并且不存在相交,所以最大 k 次預(yù)訂是1 次預(yù)訂。myCalendarThree.book(50, 60); // 返回 1 ,第二個日程安排可以預(yù)訂并且不存在相交,所以最大 k 次預(yù)訂是 1 次預(yù)訂。myCalendarThree.book(10, 40); // 返回 2 ,第三個日程安排 [10, 40)與第一個日程安排相交,所以最大 k 次預(yù)訂是 2 次預(yù)訂。 myCalendarThree.book(5, 15); // 返回 3,剩下的日程安排的最大 k 次預(yù)訂是 3 次預(yù)訂。myCalendarThree.book(5, 10); // 返回 3myCalendarThree.book(25, 55); // 返回 3題目翻譯:有一個數(shù)組初始值全部為 0 ,每次調(diào)用 book 方法都把 [start,end) 范圍內(nèi)的所有元素加 1,并返回當前數(shù)組中的最大值?!窘獯稹恐苯訕?gòu)建差分數(shù)組,更改區(qū)間值后再用前綴和還原出原數(shù)組即可。利用差分數(shù)組的思想,每當我們預(yù)定一個新的日程安排[start,end),在 start 計數(shù)diff[start] 加 1,表示從start 預(yù)定的數(shù)目加 1;從 end 計數(shù)diff[end] 減 1,表示從 end 開始預(yù)定的數(shù)目減 1。從起點開始的計數(shù)累加值(前綴和)即為當前位置原數(shù)組的值(也就是該區(qū)間日程的安排次數(shù))【注意點】book傳入的區(qū)間是左閉右開 所以[5,10) 跟 [10,…) 不會有 overlap 交叉map 自帶按key值的遞增排序.代碼class MyCalendarThree {public: MyCalendarThree() {} int book(int start, int end) { diff[start]++;// start 開始的值都加 1 diff[end]–;// end 開始的值都減 1 int res = 0; int cur = 0; for( auto & kv : diff ) { cur += kv.second;//前綴和還原原數(shù)組值 res = max(res,cur); } return res; }private: map<int,int> diff;//差分數(shù)組};123456789101112131415161718731. 我的日程安排表 II實現(xiàn)一個 MyCalendar 類來存放你的日程安排。如果要添加的時間內(nèi)不會導(dǎo)致三重預(yù)訂時,則可以存儲這個新的日程安排。MyCalendar 有一個 book(int start, int end)方法。它意味著在 start 到 end 時間內(nèi)增加一個日程安排,注意,這里的時間是半開區(qū)間,即 [start, end), 實數(shù) x 的范圍為, start <= x < end。當三個日程安排有一些時間上的交叉時(例如三個日程安排都在同一時間內(nèi)),就會產(chǎn)生三重預(yù)訂。每次調(diào)用 MyCalendar.book方法時,如果可以將日程安排成功添加到日歷中而不會導(dǎo)致三重預(yù)訂,返回 true。否則,返回 false 并且不要將該日程安排添加到日歷中。請按照以下步驟調(diào)用MyCalendar 類: MyCalendar cal = new MyCalendar(); MyCalendar.book(start, end)示例:MyCalendar();MyCalendar.book(10, 20); // returns trueMyCalendar.book(50, 60); // returns trueMyCalendar.book(10, 40); // returns trueMyCalendar.book(5, 15); // returns falseMyCalendar.book(5, 10); // returns trueMyCalendar.book(25, 55); //returns true解釋:前兩個日程安排可以添加至日歷中。第三個日程安排會導(dǎo)致雙重預(yù)訂,但可以添加至日歷中。第四個日程安排活動(5,15)不能添加至日歷中,因為它會導(dǎo)致三重預(yù)訂。第五個日程安排(5,10)可以添加至日歷中,因為它未使用已經(jīng)雙重預(yù)訂的時間10。第六個日程安排(25,55)可以添加至日歷中,因為時間[25,40] 將和第三個日程安排雙重預(yù)訂; 時間 [40,50] 將單獨預(yù)訂,時間 [50,55)將和第二個日程安排雙重預(yù)訂。class MyCalendarTwo { map <int, int> differ;public: MyCalendarTwo() { } bool book(int start, int end) { differ[start]++; differ[end]–; int cur = 0; for(auto mp : differ){ if(mp.first == end){ break; } cur += mp.second; if(mp.first >= start){ if(cur >= 3){//注意:當三重訂單時需要刪除當前日程安排,否則將因為誤添加訂單,導(dǎo)致后面的訂單數(shù)計算有誤 differ[start]–; differ[end]++; return false; } } } return true; }};1234567891011121314151617181920212223242526272829補充題:729. 我的日程安排表 I實現(xiàn)一個 MyCalendar 類來存放你的日程安排。如果要添加的日程安排不會造成 重復(fù)預(yù)訂 ,則可以存儲這個新的日程安排。當兩個日程安排有一些時間上的交叉時(例如兩個日程安排都在同一時間內(nèi)),就會產(chǎn)生 重復(fù)預(yù)訂 。日程可以用一對整數(shù) start 和 end 表示,這里的時間是半開區(qū)間,即 [start, end), 實數(shù) x 的范圍為, start <= x < end 。實現(xiàn) MyCalendar 類:MyCalendar() 初始化日歷對象。boolean book(int start, int end) 如果可以將日程安排成功添加到日歷中而不會導(dǎo)致重復(fù)預(yù)訂,返回 true 。否則,返回 false 并且不要將該日程安排添加到日歷中。示例:輸入:[“MyCalendar”, “book”, “book”, “book”][[], [10, 20], [15, 25], [20, 30]]輸出:[null, true, false, true]解釋:MyCalendar myCalendar = new MyCalendar();myCalendar.book(10, 20); // return TruemyCalendar.book(15, 25); // return False,這個日程安排不能添加到日歷中,因為時間 15 已經(jīng)被另一個日程安排預(yù)訂了。myCalendar.book(20, 30); // return True ,這個日程安排可以添加到日歷中,因為第一個日程安排預(yù)訂的每個時間都小于 20 ,且不包含時間 20 ?!痉治觥慷植檎野磿r間順序維護日程安排,用 Set數(shù)據(jù)結(jié)構(gòu)來保持元素排序和支持快速插入。class MyCalendar { //按時間順序維護日程安排,則可以通過二分查找日程安排的情況來檢查新日程安排是否可以預(yù)訂 //需要一個數(shù)據(jù)結(jié)構(gòu)能夠保持元素排序和支持快速插入,可以用 Set 來構(gòu)建 set<pair<int, int>> calendar;public: MyCalendar() {} bool book(int start, int end) { //每次查找起點大于等于 end 的第一個區(qū)間 //對于集合set而言沒有下面這種用法 // auto it = lower_bound(calendar.begin(), calendar.end(), {end, 0}); //集合set需要這樣調(diào)用二分查找函數(shù) auto it = calendar.lower_bound({end, 0}); //同時緊挨著這個第一個區(qū)間的前一個區(qū)間的后端(注意不是前端)需要≤start if(it == calendar.begin() || (–it)->second <= start){ calendar.insert({start, end}); return true; } return false; }};123456789101112131415161718192021線段樹除了查分數(shù)組之外,另一種維護區(qū)間更新的數(shù)據(jù)結(jié)構(gòu)就是線段樹,線段樹除了可以快速的更新區(qū)間,還可以快速的查詢區(qū)間最值。由于普通的線段樹需要開4n的空間,所以為了讓數(shù)據(jù)離散化可以選擇動態(tài)開點。并且根節(jié)點的值就是所有區(qū)間的最大值,通常來說,時間提升了不少但整體空間復(fù)雜度提升。線段樹最經(jīng)典的應(yīng)該是307.區(qū)域和檢索。就是給你一個數(shù)組,會有簡單的更新操作以及查詢區(qū)域和的操作。查詢操作指的是給你一個區(qū)間[L,R], 返回該區(qū)間[L,R]內(nèi)所有元素的和。更新操作指的是,給你一個下標索引和一個值,將數(shù)組中該索引值對于的元素值改為新的給定值。線段樹(處理區(qū)域和查詢問題):對于查詢區(qū)間和,我們?nèi)菀紫氲降囊粋€點就是使用前綴和,這樣我們就可以將查詢的操作提升到O(1), 但是使用前綴和會有一個問題,當我們的更新次數(shù)過多時,尤其是需要更新的元素比較靠前時,每一次更新的代價都會為O(n),從而沒有達到優(yōu)化的效果。但是對于元素不變動的數(shù)組前綴和還是有很不錯的優(yōu)勢!線段樹將此類問題的查詢以及更新的時間復(fù)雜度都變成了O(logn)。當進行多次查詢與更新時,線段樹一定比前綴和更具優(yōu)勢。線段樹的結(jié)構(gòu)有點像堆,首先需要明確的是,我們用數(shù)組來表示樹的結(jié)構(gòu),對于根樹的根節(jié)點,它會在index=1的位置上(其實此處0也行,不過大家普遍用1,區(qū)別就是計算子節(jié)點的方式不同),然后對于其節(jié)點的左右子節(jié)點的下標分別為 2×index 與 2×index+1。然后其子節(jié)點也是這樣的規(guī)律。查詢: 我們會根據(jù)區(qū)間從根節(jié)點向樹的兩邊遞歸查尋。假設(shè)我們現(xiàn)在要查找此樹的[2,4]的區(qū)間和,即[50,50,1]的和, 那么這個過程是什么樣的呢?更新:假設(shè)我們要將其數(shù)組中的1更新為2,結(jié)構(gòu)會發(fā)生什么變化?而有那些節(jié)點會做出改變呢?到此我們已經(jīng)基本了解了線段樹了,我們發(fā)現(xiàn)線段樹讓更新與查詢的時間復(fù)雜度都變成了O(logn), 下面我們來代碼層面的學(xué)習(xí)一下線段樹。建樹跑完以上代碼后,我們的線段樹數(shù)組如下: (可以發(fā)現(xiàn)根節(jié)點在索引為1的位置的確為284,是所有元素的和,讀者可以根據(jù)樹的結(jié)構(gòu),以及從開頭介紹的左右子節(jié)點的計算方式一一檢查是否正確檢索檢索需要討論以下情況:情況一:情況二:情況二則是當前區(qū)間被我們的檢索區(qū)間包圍,即藍色區(qū)間在綠色區(qū)間里面時,因此不必繼續(xù)往下遞歸,可以直接返回當前節(jié)點值。這里比較容易想,讀者可參考之前的線段樹查詢。思考一下,每一個節(jié)點表示的都是一個區(qū)間內(nèi)所有元素的和,那么當整個當前區(qū)間都被我們的檢索區(qū)間包圍了,證明我們需要所有的元素,因此不必繼續(xù)往下遞歸查詢,可以返回其節(jié)點值。譬如之前例子中的區(qū)間[3,4],代碼輸出中依然可以觀察到這一點。代碼如下:示例查詢區(qū)間[2,4]的區(qū)域和結(jié)果如下: 50 + 50 + 1 = 101.為了可視化,我在其query方法中加入了幾行輸出。我們可以發(fā)現(xiàn)當遞歸到區(qū)間[3,4]時其實已經(jīng)停止繼續(xù)遞歸下去了,這正是我們想要的結(jié)果。更新更新與建樹很像,當其遞歸到出口時就說明我們已經(jīng)找到了要更新元素的節(jié)點。要注意更新完元素后,其包含此元素的區(qū)間節(jié)點都需要更新,代碼中已加注釋。我們做一次更新,將數(shù)組從[93,90,50,50,1]改到[93,90,50,50,2],然后在做一次查詢看結(jié)果是否正確:題目練習(xí):732. 我的日程安排表 III當 k 個日程安排有一些時間上的交叉時(例如 k 個日程安排都在同一時間內(nèi)),就會產(chǎn)生 k 次預(yù)訂。給你一些日程安排 [start, end) ,請你在每個日程安排添加后,返回一個整數(shù) k ,表示所有先前日程安排會產(chǎn)生的最大 k 次預(yù)訂。【問題解讀】首先我們來將問題轉(zhuǎn)化一下,讓題意更加明顯,其實本題的本質(zhì)就是給你一個區(qū)間,然后讓你將其[start, end)內(nèi)所有的元素值加上1,在進行了每一次的book更新的操作后,返回[0, 1 e 9 1e91e9]這個區(qū)間內(nèi)的最大元素值是多少。本題的解法本質(zhì)上其實也是運用了線段樹的思想,但是從檢查區(qū)域和,變?yōu)榱藱z索線段樹中葉子節(jié)點的最大值是多少。我們很容易的想到,對于其一段區(qū)間我們需要book時,我們可以將其區(qū)間內(nèi)的所有元素都加上1。顯而易見的是,我們無法真的去建樹,以及真的去更新其元素值。對于第一個問題,由于此題的數(shù)據(jù)問題,我們可能造成內(nèi)存溢出。因此我們用哈希表來表示我們的線段樹,這樣可以省去許多內(nèi)存空間。對于其第二個問題,不需要真的去手動更新每個節(jié)點值。我們選擇的是官解中的懶標記,及如果當前節(jié)點區(qū)間的被索引的區(qū)間覆蓋時,我們則將表示此區(qū)間的節(jié)點值加1,表示此區(qū)間內(nèi)的所有元素值都加了一位,這里很重要,讀者需要多讀幾遍。 個人覺得懶標記最難理解的地方就在這里,詳細可看思路步驟中的第二點解讀。【思路步驟】1.需要兩個哈希表,一個用于線段樹,一個用于區(qū)間的懶標記使用。注意此時的線段樹的節(jié)點擁有的是該區(qū)間內(nèi)的所有元素中的最大值。(不要被上述區(qū)間和的例子干擾,注意本題問的是什么!區(qū)間和提供的是思路!)2.對于一個區(qū)間的更新,我們左右遞歸,下面分類討論:1)當該區(qū)間不在檢索區(qū)間內(nèi)時,則start > r || end < l,不做更新,直接返回。2)當該區(qū)間被檢索區(qū)間覆蓋時,我們無需手動去更新該區(qū)間內(nèi)所有元素值,只需要標記一下該區(qū)間內(nèi)的所有元素都被加上了一位即可。顯而易見,無論當前節(jié)點區(qū)間的最大值為多少,當該區(qū)間的所有元素值都加一時,其擁有的最大值自然也需要加一位。3)當該區(qū)間內(nèi)有元素不在其檢索區(qū)間時,遞歸左右兩邊去更新我們的線段樹。3.返回根節(jié)點的最大值,即所有元素中的最大值。class MyCalendarThree {private: unordered_map<int, int> tree; unordered_map<int, int> lazy;public: MyCalendarThree() { } void update(int start, int end, int l, int r, int node) { if(start > r || end < l) { return; } else if(start <= l && r <= end) { // 當前區(qū)間被檢索區(qū)間覆蓋, 因此區(qū)間內(nèi)所有元素都加一 // 自然而然,無論當前節(jié)點區(qū)間的最大值為多少,當該區(qū)間的所有 // 元素值都加一時,其擁有的最大值自然也需要加一位 ++tree[node]; ++lazy[node]; } else { int left_node = node2, right_node = node2 + 1; int mid = (l+r) >> 1; update(start, end, l, mid, left_node); update(start, end, mid+1, r, right_node); tree[node] = lazy[node] + max(tree[left_node], tree[right_node]); } } int book(int start, int end) { update(start, end-1, 0, 1e9, 1); return tree[1]; }};123456789101112131415161718192021222324252627282930313233復(fù)雜度分析時間復(fù)雜度:O ( n log ? C ) O(n \log C)O(nlogC),其中 n 為日程安排的數(shù)量。由于使用了線段樹查詢,線段樹的最大深度為 log ? C \log ClogC, 每次最多會查詢 log ? C \log ClogC個節(jié)點,每次求最大的預(yù)定需的時間復(fù)雜度為 O ( log ? C + log ? C ) O(\log C + \log C)O(logC+logC),因此時間復(fù)雜度為 O ( n log ? C ) O(n \log C)O(nlogC),在此 C 取固定值即為 1 0 9 10^910 9 ??臻g復(fù)雜度:O ( n log ? C ) O(n \log C)O(nlogC),其中 n 為日程安排的數(shù)量。由于該解法采用的為動態(tài)線段樹,線段樹的最大深度為 log ? C \log ClogC,每次預(yù)定最多會在線段樹上增加log ? C \log ClogC個節(jié)點,因此空間復(fù)雜度為 O ( n log ? C ) O(n \log C)O(nlogC),在此 C 取固定值即為 1 0 9 10^910 9 。前綴樹/字典樹(Trie)前綴樹(Trie Tree),Trie [tra?] 讀音和 try 相同,前綴樹也叫字典樹或單詞查找樹。Trie(發(fā)音類似 “try”)或者說 前綴樹 是一種樹形數(shù)據(jù)結(jié)構(gòu),用于高效地存儲和檢索字符串數(shù)據(jù)集中的鍵。這一數(shù)據(jù)結(jié)構(gòu)有相當多的應(yīng)用情景,例如自動補完和拼寫檢查。「前綴樹」比較常用的應(yīng)用場景:給定一個字符串集合構(gòu)建一棵前綴樹,然后給一個字符串,判斷前綴樹中是否存在該字符串或者該字符串的前綴。Trie 是一種非典型的多叉樹模型,多叉好理解,即每個結(jié)點的分支數(shù)量可能為多個。為什么說非典型呢?因為它和一般的多叉樹不一樣,尤其在結(jié)點的數(shù)據(jù)結(jié)構(gòu)設(shè)計上,比如一般的多叉樹的結(jié)點是這樣的:struct TreeNode { VALUETYPE value; //結(jié)點值 TreeNode children[NUM]; //指向孩子結(jié)點};1234而 Trie 的結(jié)點是這樣的(假設(shè)只包含’a’~'z’中的字符),可以理解為26叉樹(有的分支為空,可以忽略):struct TrieNode { bool isEnd; //該結(jié)點是否是一個串的結(jié)束 vector<TrieNode> children = vector<TrieNode>(26);//字母映射表 //TrieNode children[26]; //或者這樣寫};12345children 中保存了對當前結(jié)點而言下一個可能出現(xiàn)的所有字符的鏈接,因此我們可以通過一個父結(jié)點來預(yù)知它所有子結(jié)點的值:for (int i = 0; i < 26; i++) { char ch = ‘a(chǎn)’ + i; if (parentNode->children[i] == nullptr) { 說明父結(jié)點的后一個字母不可為 ch } else { 說明父結(jié)點的后一個字母可以是 ch }}12345678來看個例子,想象以下,包含三個單詞 “sea”,“sells”,“she” 的 Trie 會長啥樣呢?它的真實情況是這樣的:Trie 中一般都含有大量的空鏈接,因此在繪制一棵單詞查找樹時一般會忽略空鏈接,同時為了方便理解我們可以畫成這樣:由于都是小寫字母,所以對于每個節(jié)點,均有 26 個孩子節(jié)點,上圖中沒有畫出來,省略了而已…,但是要記住:每個節(jié)點均有 26 個孩子節(jié)點還有一個點要明確:節(jié)點僅僅表示從根節(jié)點到本節(jié)點的路徑構(gòu)成的字符串是否有效而已對于上圖中紅色的節(jié)點,均為有效節(jié)點,即:從根節(jié)點到紅色節(jié)點的路徑構(gòu)成的字符串均在集合中接下來我們一起來實現(xiàn)對 Trie 的一些常用操作方法:1.定義類 Trieclass Trie {private: bool isEnd; vector<Trie> children = vector<Trie>(26);//字母映射表public: //方法將在下文實現(xiàn)…};12345672.插入描述:向 Trie 中插入一個單詞 word實現(xiàn):這個操作和構(gòu)建鏈表很像。首先從根結(jié)點的子結(jié)點開始與 word 第一個字符進行匹配,一直匹配到前綴鏈上沒有對應(yīng)的字符,這時開始不斷開辟新的結(jié)點,直到插入完 word 的最后一個字符,同時還要將最后一個結(jié)點isEnd = true;,表示它是一個單詞的末尾。void insert(string word) { Trie* node = this; for (char c : word) { if (node->children[c-‘a(chǎn)’] == nullptr) { node->children[c-‘a(chǎn)’] = new Trie(); } node = node->children[c-‘a(chǎn)’]; } node->isEnd = true;}123456789103.查找描述:查找 Trie 中是否存在單詞 word實現(xiàn):從根結(jié)點的子結(jié)點開始,一直向下匹配即可,如果出現(xiàn)結(jié)點值為空就返回 false,如果匹配到了最后一個字符,那我們只需判斷 node->isEnd 即可。bool search(string word) { Trie* node = this; for (char c : word) { node = node->children[c - ‘a(chǎn)’]; if (node == nullptr) { return false; } } return node->isEnd;}123456789104.前綴匹配描述:判斷 Trie 中是或有以 prefix 為前綴的單詞實現(xiàn):和 search 操作類似,只是不需要判斷最后一個字符結(jié)點的isEnd,因為既然能匹配到最后一個字符,那后面一定有單詞是以它為前綴的。bool startsWith(string prefix) { Trie* node = this; for (char c : prefix) { node = node->children[c-‘a(chǎn)’]; if (node == nullptr) { return false; } } return true;}12345678910總結(jié):通過以上介紹和代碼實現(xiàn)我們可以總結(jié)出 Trie 的幾點性質(zhì):1.Trie 的形狀和單詞的插入或刪除順序無關(guān),也就是說對于任意給定的一組單詞,Trie 的形狀都是唯一的。2.查找或插入一個長度為 L 的單詞,訪問 children 數(shù)組的次數(shù)最多為 L + 1 L+1L+1,和 Trie 中包含多少個單詞無關(guān)。3.Trie 的每個結(jié)點中都保留著一個字母表,這是很耗費空間的。如果 Trie 的高度為 n nn,字母表的大小為 m mm,最壞的情況是 Trie 中還不存在前綴相同的單詞,那空間復(fù)雜度就為 O ( m n ) O(m^n)O(m n )最后,關(guān)于 Trie 的應(yīng)用場景,希望你能記住 8 個字:一次建樹,多次查詢。(慢慢領(lǐng)悟叭~~)
——————————————

總結(jié)

以上是生活随笔為你收集整理的C++数据结构,三万字详解(强烈建议收藏)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

国产亚洲精品久久久久久久 | 亚洲s色大片在线观看 | 日日橹狠狠爱欧美视频 | 中文字幕乱妇无码av在线 | 亚洲人亚洲人成电影网站色 | 中文字幕乱码人妻二区三区 | 夜夜影院未满十八勿进 | 丰满少妇弄高潮了www | 男人扒开女人内裤强吻桶进去 | aa片在线观看视频在线播放 | 国产精品久久久久9999小说 | 国产精品久久久久久久9999 | 丰满人妻一区二区三区免费视频 | 两性色午夜视频免费播放 | 久久婷婷五月综合色国产香蕉 | 久久久www成人免费毛片 | 亚洲va欧美va天堂v国产综合 | 国产sm调教视频在线观看 | 沈阳熟女露脸对白视频 | 国产av无码专区亚洲a∨毛片 | 中国女人内谢69xxxxxa片 | 国产亚洲tv在线观看 | 成人三级无码视频在线观看 | 丝袜人妻一区二区三区 | 国产精品丝袜黑色高跟鞋 | 日韩av激情在线观看 | 国内精品人妻无码久久久影院 | 啦啦啦www在线观看免费视频 | 樱花草在线播放免费中文 | 日韩少妇白浆无码系列 | 又湿又紧又大又爽a视频国产 | 精品国产av色一区二区深夜久久 | 中文字幕 亚洲精品 第1页 | 狠狠色色综合网站 | 丰满肥臀大屁股熟妇激情视频 | 国产亲子乱弄免费视频 | 人人妻人人澡人人爽欧美一区 | 亚洲一区二区三区国产精华液 | 男女超爽视频免费播放 | 一本久久伊人热热精品中文字幕 | 亚洲精品国偷拍自产在线麻豆 | 蜜桃视频插满18在线观看 | www成人国产高清内射 | 欧美日韩视频无码一区二区三 | 精品人妻中文字幕有码在线 | 三级4级全黄60分钟 | 少妇的肉体aa片免费 | 精品亚洲成av人在线观看 | 国产小呦泬泬99精品 | 少妇厨房愉情理9仑片视频 | 少妇激情av一区二区 | 理论片87福利理论电影 | 99riav国产精品视频 | 亚洲天堂2017无码 | 国产综合久久久久鬼色 | 99久久精品日本一区二区免费 | 国产又粗又硬又大爽黄老大爷视 | 日本丰满熟妇videos | 国内揄拍国内精品人妻 | 四十如虎的丰满熟妇啪啪 | 中文久久乱码一区二区 | 色五月五月丁香亚洲综合网 | 天堂а√在线中文在线 | 成人无码视频免费播放 | 影音先锋中文字幕无码 | 九九久久精品国产免费看小说 | 强辱丰满人妻hd中文字幕 | 又大又黄又粗又爽的免费视频 | 67194成是人免费无码 | 未满小14洗澡无码视频网站 | 国产成人精品无码播放 | 熟女俱乐部五十路六十路av | 国产人妖乱国产精品人妖 | 精品国产福利一区二区 | 精品一区二区三区无码免费视频 | 日本乱人伦片中文三区 | 久久精品人妻少妇一区二区三区 | 三级4级全黄60分钟 | 国产内射爽爽大片视频社区在线 | 2020久久超碰国产精品最新 | 日韩欧美中文字幕在线三区 | 女人色极品影院 | 清纯唯美经典一区二区 | v一区无码内射国产 | 久久久久久久久蜜桃 | 色欲久久久天天天综合网精品 | 一本久久a久久精品vr综合 | 俺去俺来也在线www色官网 | 国产精品内射视频免费 | 免费无码一区二区三区蜜桃大 | 亚洲国产欧美在线成人 | 日本大香伊一区二区三区 | 中国大陆精品视频xxxx | 欧美猛少妇色xxxxx | 欧美亚洲日韩国产人成在线播放 | 中文字幕+乱码+中文字幕一区 | 76少妇精品导航 | 欧洲欧美人成视频在线 | 国产成人无码av片在线观看不卡 | 国产区女主播在线观看 | 国产成人无码a区在线观看视频app | 国产人妻精品一区二区三区不卡 | 六月丁香婷婷色狠狠久久 | 高清无码午夜福利视频 | 少妇激情av一区二区 | 夜夜躁日日躁狠狠久久av | 奇米影视7777久久精品人人爽 | 国产精品久久久午夜夜伦鲁鲁 | 国产精品国产自线拍免费软件 | 亚洲区欧美区综合区自拍区 | 波多野结衣高清一区二区三区 | 内射欧美老妇wbb | 鲁鲁鲁爽爽爽在线视频观看 | 人妻插b视频一区二区三区 | 国产精品久久久久久亚洲影视内衣 | 国产综合色产在线精品 | 精品一区二区三区无码免费视频 | 国产亚洲精品精品国产亚洲综合 | 中文无码成人免费视频在线观看 | 男女猛烈xx00免费视频试看 | 亚洲国产欧美在线成人 | 日本成熟视频免费视频 | 国产精品成人av在线观看 | 黑人大群体交免费视频 | 成人片黄网站色大片免费观看 | 又色又爽又黄的美女裸体网站 | 国产av一区二区三区最新精品 | 67194成是人免费无码 | 97久久超碰中文字幕 | 人妻插b视频一区二区三区 | 成人无码精品一区二区三区 | 国产人妻久久精品二区三区老狼 | 久久无码中文字幕免费影院蜜桃 | 精品乱子伦一区二区三区 | 精品国产一区二区三区av 性色 | 亚洲爆乳大丰满无码专区 | 亚洲a无码综合a国产av中文 | 一二三四社区在线中文视频 | 亚洲国产午夜精品理论片 | 色偷偷人人澡人人爽人人模 | 激情国产av做激情国产爱 | 又大又黄又粗又爽的免费视频 | 中文字幕 亚洲精品 第1页 | www国产亚洲精品久久久日本 | а√资源新版在线天堂 | 日本xxxx色视频在线观看免费 | 中文字幕亚洲情99在线 | 国产亚洲精品久久久久久大师 | 免费中文字幕日韩欧美 | 国产精品免费大片 | 久久精品无码一区二区三区 | 免费无码一区二区三区蜜桃大 | 无遮挡啪啪摇乳动态图 | 亚洲中文字幕久久无码 | 久久精品女人的天堂av | 欧美乱妇无乱码大黄a片 | 免费网站看v片在线18禁无码 | 婷婷色婷婷开心五月四房播播 | 天堂а√在线地址中文在线 | 精品久久久无码中文字幕 | 99久久久无码国产精品免费 | 成人无码精品1区2区3区免费看 | 欧美黑人性暴力猛交喷水 | 乱人伦人妻中文字幕无码 | 色综合久久网 | 久久久久亚洲精品男人的天堂 | 国产精品久久久久9999小说 | 亚洲日韩精品欧美一区二区 | 激情内射亚州一区二区三区爱妻 | 特级做a爰片毛片免费69 | 亚洲精品久久久久中文第一幕 | 国产另类ts人妖一区二区 | 天下第一社区视频www日本 | 亚洲精品中文字幕久久久久 | 大屁股大乳丰满人妻 | 色五月五月丁香亚洲综合网 | 亚洲综合色区中文字幕 | 国精品人妻无码一区二区三区蜜柚 | 人妻少妇被猛烈进入中文字幕 | 少妇无套内谢久久久久 | 九九久久精品国产免费看小说 | 精品国产一区av天美传媒 | 最新国产麻豆aⅴ精品无码 | 亚洲精品国产精品乱码视色 | 亚洲男女内射在线播放 | 久久久精品人妻久久影视 | 香蕉久久久久久av成人 | 人妻少妇被猛烈进入中文字幕 | 伊在人天堂亚洲香蕉精品区 | 久久久www成人免费毛片 | 国产香蕉尹人综合在线观看 | 99国产精品白浆在线观看免费 | 中国女人内谢69xxxxxa片 | 中文精品无码中文字幕无码专区 | 欧美性黑人极品hd | 亚洲日本一区二区三区在线 | 无码播放一区二区三区 | 丰满人妻精品国产99aⅴ | 日本饥渴人妻欲求不满 | 亚洲精品国产精品乱码不卡 | 又紧又大又爽精品一区二区 | 久久久中文字幕日本无吗 | 国产凸凹视频一区二区 | 欧美 日韩 亚洲 在线 | 99久久久无码国产aaa精品 | 欧美性生交活xxxxxdddd | 久久国产自偷自偷免费一区调 | av无码电影一区二区三区 | 国产精品视频免费播放 | 久久精品中文闷骚内射 | 亚洲色欲色欲天天天www | 高清国产亚洲精品自在久久 | 我要看www免费看插插视频 | 97久久超碰中文字幕 | 国产极品视觉盛宴 | 色 综合 欧美 亚洲 国产 | 午夜肉伦伦影院 | 欧美人与物videos另类 | 少妇愉情理伦片bd | 久久国产36精品色熟妇 | 国产午夜亚洲精品不卡下载 | 国产真人无遮挡作爱免费视频 | 1000部夫妻午夜免费 | 福利一区二区三区视频在线观看 | 国产精品久久久久久久9999 | 国产口爆吞精在线视频 | 国产精华av午夜在线观看 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 正在播放老肥熟妇露脸 | 精品成人av一区二区三区 | 国产成人无码av在线影院 | 欧美阿v高清资源不卡在线播放 | 内射爽无广熟女亚洲 | 无码国产激情在线观看 | 午夜福利不卡在线视频 | 最近的中文字幕在线看视频 | 国产又爽又猛又粗的视频a片 | 精品aⅴ一区二区三区 | 女人被男人躁得好爽免费视频 | 国语自产偷拍精品视频偷 | 亚洲色欲色欲天天天www | 亚洲精品一区三区三区在线观看 | 国产成人精品三级麻豆 | 精品国产av色一区二区深夜久久 | 国产精品对白交换视频 | 图片小说视频一区二区 | 国产无套粉嫩白浆在线 | 十八禁真人啪啪免费网站 | 欧美熟妇另类久久久久久多毛 | 日韩人妻无码一区二区三区久久99 | 在线精品亚洲一区二区 | 亚洲综合精品香蕉久久网 | 亚洲欧洲日本综合aⅴ在线 | 国产香蕉尹人视频在线 | 青青草原综合久久大伊人精品 | 成人精品一区二区三区中文字幕 | 人妻少妇被猛烈进入中文字幕 | 粗大的内捧猛烈进出视频 | 西西人体www44rt大胆高清 | 成人无码视频在线观看网站 | 精品偷自拍另类在线观看 | 日日麻批免费40分钟无码 | 亚洲精品一区二区三区大桥未久 | 国产猛烈高潮尖叫视频免费 | 一本大道伊人av久久综合 | 国产熟女一区二区三区四区五区 | 色综合久久88色综合天天 | 成人免费视频在线观看 | 国产日产欧产精品精品app | 欧美亚洲日韩国产人成在线播放 | 亚洲爆乳精品无码一区二区三区 | 亚洲人成影院在线无码按摩店 | 国产熟妇另类久久久久 | 亚洲爆乳无码专区 | 久久久久国色av免费观看性色 | 中文久久乱码一区二区 | 大胆欧美熟妇xx | 九九久久精品国产免费看小说 | 久久亚洲中文字幕精品一区 | 人人爽人人爽人人片av亚洲 | 97久久精品无码一区二区 | 久久午夜无码鲁丝片午夜精品 | 国产精品亚洲专区无码不卡 | 国产成人精品无码播放 | 国产成人精品必看 | 国产成人无码av在线影院 | 香港三级日本三级妇三级 | 中文字幕人妻丝袜二区 | 欧美日韩人成综合在线播放 | 欧美人与禽zoz0性伦交 | 亚洲aⅴ无码成人网站国产app | 国产内射爽爽大片视频社区在线 | 日韩人妻无码中文字幕视频 | 亚洲精品成人福利网站 | 久久五月精品中文字幕 | 亚洲人成人无码网www国产 | 3d动漫精品啪啪一区二区中 | 中文字幕无码日韩专区 | 女高中生第一次破苞av | 久久久久久久久888 | 黑人粗大猛烈进出高潮视频 | 亚无码乱人伦一区二区 | 欧美日韩一区二区三区自拍 | 无码中文字幕色专区 | 天堂无码人妻精品一区二区三区 | 无码av岛国片在线播放 | 中文字幕无码乱人伦 | 欧洲熟妇精品视频 | 久久久久av无码免费网 | 国产内射老熟女aaaa | 久久99精品久久久久婷婷 | 九月婷婷人人澡人人添人人爽 | yw尤物av无码国产在线观看 | 小sao货水好多真紧h无码视频 | 蜜臀aⅴ国产精品久久久国产老师 | 国产精品资源一区二区 | 久久人人爽人人爽人人片av高清 | 欧美熟妇另类久久久久久不卡 | 国产午夜无码精品免费看 | 人人妻人人澡人人爽精品欧美 | 亚洲日韩av片在线观看 | 亚洲欧美日韩综合久久久 | 国产在线精品一区二区高清不卡 | 国产电影无码午夜在线播放 | 77777熟女视频在线观看 а天堂中文在线官网 | 人人妻人人澡人人爽人人精品浪潮 | 色综合视频一区二区三区 | 一本无码人妻在中文字幕免费 | 亚洲成在人网站无码天堂 | 装睡被陌生人摸出水好爽 | 天天拍夜夜添久久精品大 | 俄罗斯老熟妇色xxxx | 乱人伦中文视频在线观看 | 免费观看黄网站 | 99久久人妻精品免费二区 | 精品无码一区二区三区的天堂 | 色欲久久久天天天综合网精品 | 成年美女黄网站色大免费视频 | 久久久久av无码免费网 | 亚洲码国产精品高潮在线 | 国产香蕉尹人视频在线 | 动漫av一区二区在线观看 | 无码一区二区三区在线观看 | 中文字幕人妻无码一夲道 | 欧美日韩一区二区免费视频 | 国产高清av在线播放 | 亚洲七七久久桃花影院 | 国产无遮挡吃胸膜奶免费看 | 少妇无码吹潮 | 日本欧美一区二区三区乱码 | 在线观看国产午夜福利片 | 亚洲色成人中文字幕网站 | 欧美日韩亚洲国产精品 | 欧美日韩久久久精品a片 | 性开放的女人aaa片 | 色欲人妻aaaaaaa无码 | 天下第一社区视频www日本 | 亚洲一区二区三区国产精华液 | 国产精品无码久久av | 一二三四社区在线中文视频 | 国产欧美精品一区二区三区 | 国产精品无码久久av | 国产精品无码一区二区三区不卡 | 色婷婷综合激情综在线播放 | 夜夜高潮次次欢爽av女 | 久久99精品国产.久久久久 | 亚洲色欲色欲天天天www | 亚洲 a v无 码免 费 成 人 a v | 国产成人一区二区三区在线观看 | 久久精品中文字幕大胸 | 国产一精品一av一免费 | 成人无码精品一区二区三区 | 亲嘴扒胸摸屁股激烈网站 | 好爽又高潮了毛片免费下载 | 男女猛烈xx00免费视频试看 | 久久天天躁夜夜躁狠狠 | 中文字幕乱妇无码av在线 | 欧美阿v高清资源不卡在线播放 | 久久久久亚洲精品男人的天堂 | 强伦人妻一区二区三区视频18 | 99精品无人区乱码1区2区3区 | 国产av无码专区亚洲awww | www国产亚洲精品久久久日本 | 天海翼激烈高潮到腰振不止 | 福利一区二区三区视频在线观看 | 熟女体下毛毛黑森林 | 国产在线精品一区二区高清不卡 | 奇米影视7777久久精品人人爽 | 狠狠cao日日穞夜夜穞av | 国内精品九九久久久精品 | 伦伦影院午夜理论片 | 亚洲aⅴ无码成人网站国产app | 少妇的肉体aa片免费 | 色婷婷综合激情综在线播放 | 亚洲中文字幕乱码av波多ji | 日韩人妻少妇一区二区三区 | 日本在线高清不卡免费播放 | 精品久久久久久亚洲精品 | 欧美精品免费观看二区 | 无码人妻av免费一区二区三区 | 国产9 9在线 | 中文 | 无码人妻精品一区二区三区不卡 | 粉嫩少妇内射浓精videos | 欧美freesex黑人又粗又大 | 日韩亚洲欧美中文高清在线 | 国内少妇偷人精品视频 | 午夜丰满少妇性开放视频 | 蜜臀av无码人妻精品 | 日本护士毛茸茸高潮 | 中文精品久久久久人妻不卡 | www一区二区www免费 | 国产乱人伦偷精品视频 | 国产精品无码成人午夜电影 | 小泽玛莉亚一区二区视频在线 | 国产精品对白交换视频 | 国产精品欧美成人 | 人人爽人人澡人人高潮 | 18黄暴禁片在线观看 | 国产xxx69麻豆国语对白 | 国产成人综合色在线观看网站 | 午夜成人1000部免费视频 | 欧美人与动性行为视频 | 久久亚洲精品中文字幕无男同 | 99久久人妻精品免费二区 | 久久精品人妻少妇一区二区三区 | 无套内谢的新婚少妇国语播放 | 丰满护士巨好爽好大乳 | 国产精品久久国产精品99 | 国产亚洲人成在线播放 | 好屌草这里只有精品 | 成熟妇人a片免费看网站 | 国产成人精品三级麻豆 | 波多野42部无码喷潮在线 | 日韩av无码一区二区三区不卡 | 日韩亚洲欧美中文高清在线 | 在线看片无码永久免费视频 | 亚洲精品国产第一综合99久久 | 欧洲熟妇精品视频 | 国产精品爱久久久久久久 | 精品国产一区二区三区四区在线看 | 亚洲熟妇色xxxxx欧美老妇y | 东京无码熟妇人妻av在线网址 | 精品久久综合1区2区3区激情 | 国产情侣作爱视频免费观看 | 人妻体内射精一区二区三四 | 日本丰满护士爆乳xxxx | 国产激情无码一区二区 | 国产xxx69麻豆国语对白 | 国产av一区二区三区最新精品 | 国产精品久久久av久久久 | 少妇一晚三次一区二区三区 | 性欧美videos高清精品 | 欧美老人巨大xxxx做受 | 久久综合激激的五月天 | 亚洲精品一区国产 | 日本免费一区二区三区最新 | 亚洲中文字幕乱码av波多ji | 中文字幕亚洲情99在线 | 久久人人爽人人爽人人片ⅴ | 亚洲日本在线电影 | 日日天日日夜日日摸 | 精品无码成人片一区二区98 | 亚洲人交乣女bbw | 国产又爽又猛又粗的视频a片 | 亚洲熟妇色xxxxx欧美老妇 | a在线观看免费网站大全 | 内射巨臀欧美在线视频 | 成人片黄网站色大片免费观看 | 国精品人妻无码一区二区三区蜜柚 | 综合激情五月综合激情五月激情1 | 好爽又高潮了毛片免费下载 | 少妇厨房愉情理9仑片视频 | 午夜福利试看120秒体验区 | 国产av人人夜夜澡人人爽麻豆 | 中文无码成人免费视频在线观看 | 麻豆蜜桃av蜜臀av色欲av | 九九久久精品国产免费看小说 | 亚洲精品www久久久 | 国内少妇偷人精品视频免费 | 国产办公室秘书无码精品99 | 国产成人精品三级麻豆 | 欧美日韩在线亚洲综合国产人 | 荫蒂添的好舒服视频囗交 | 天天拍夜夜添久久精品 | 露脸叫床粗话东北少妇 | 国产热a欧美热a在线视频 | 男女爱爱好爽视频免费看 | 99久久精品日本一区二区免费 | 中文毛片无遮挡高清免费 | 夜夜夜高潮夜夜爽夜夜爰爰 | 国产一区二区三区影院 | 久久综合九色综合欧美狠狠 | 亚无码乱人伦一区二区 | 又色又爽又黄的美女裸体网站 | 免费人成网站视频在线观看 | 少妇性l交大片 | 99精品视频在线观看免费 | 黑人玩弄人妻中文在线 | 熟妇人妻无码xxx视频 | 兔费看少妇性l交大片免费 | 大地资源网第二页免费观看 | 国产av无码专区亚洲awww | 久久亚洲国产成人精品性色 | 国产女主播喷水视频在线观看 | 国产肉丝袜在线观看 | 国产婷婷色一区二区三区在线 | 黄网在线观看免费网站 | 人人妻人人澡人人爽欧美一区九九 | 18黄暴禁片在线观看 | 亚洲精品午夜无码电影网 | 亚洲欧洲无卡二区视頻 | 欧美日韩一区二区三区自拍 | 青春草在线视频免费观看 | 国产精品二区一区二区aⅴ污介绍 | 日欧一片内射va在线影院 | 美女黄网站人色视频免费国产 | 国产麻豆精品精东影业av网站 | 东京热男人av天堂 | 日本护士毛茸茸高潮 | 狠狠综合久久久久综合网 | 亚洲国产精品无码一区二区三区 | 2020最新国产自产精品 | 国产亚洲精品久久久久久久 | 欧美丰满熟妇xxxx性ppx人交 | 一本久久a久久精品亚洲 | 最近免费中文字幕中文高清百度 | 成人免费视频一区二区 | 荫蒂添的好舒服视频囗交 | 国产精品久久久久久亚洲毛片 | 在线a亚洲视频播放在线观看 | 色婷婷综合激情综在线播放 | 国产成人亚洲综合无码 | 伊人久久大香线蕉av一区二区 | 鲁一鲁av2019在线 | 久久天天躁狠狠躁夜夜免费观看 | 国产av一区二区精品久久凹凸 | 曰韩少妇内射免费播放 | 一本色道婷婷久久欧美 | 一本久道久久综合婷婷五月 | 欧洲精品码一区二区三区免费看 | 九九在线中文字幕无码 | 亚洲精品一区二区三区在线 | 亚洲狠狠婷婷综合久久 | 三上悠亚人妻中文字幕在线 | 在线a亚洲视频播放在线观看 | 亚洲精品国偷拍自产在线麻豆 | 国精产品一品二品国精品69xx | 福利一区二区三区视频在线观看 | 国产色视频一区二区三区 | 精品国产福利一区二区 | 女人被爽到呻吟gif动态图视看 | 国产成人综合在线女婷五月99播放 | 高清无码午夜福利视频 | ass日本丰满熟妇pics | 国产一区二区不卡老阿姨 | 98国产精品综合一区二区三区 | 国产99久久精品一区二区 | 国产亚洲精品久久久久久大师 | 国产精品永久免费视频 | 亚洲欧美国产精品专区久久 | 乌克兰少妇xxxx做受 | 欧美性生交xxxxx久久久 | 国产成人一区二区三区别 | 亚洲精品无码国产 | 亚洲国产精品一区二区美利坚 | 小泽玛莉亚一区二区视频在线 | 国产口爆吞精在线视频 | 影音先锋中文字幕无码 | 免费观看又污又黄的网站 | 国语精品一区二区三区 | 激情亚洲一区国产精品 | 国内精品久久久久久中文字幕 | 无码乱肉视频免费大全合集 | 久久99国产综合精品 | 国产精品人妻一区二区三区四 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 一本久久a久久精品vr综合 | 亚洲国产精品一区二区第一页 | 久久99精品国产麻豆蜜芽 | 亚洲国产欧美在线成人 | 国内精品久久久久久中文字幕 | 领导边摸边吃奶边做爽在线观看 | 日产精品99久久久久久 | 亚洲无人区午夜福利码高清完整版 | 国产精品无码永久免费888 | 日本熟妇大屁股人妻 | 久久精品女人的天堂av | 99er热精品视频 | 欧美性猛交内射兽交老熟妇 | 岛国片人妻三上悠亚 | 妺妺窝人体色www在线小说 | 久久久久99精品国产片 | 国产97色在线 | 免 | 国内精品九九久久久精品 | 天天拍夜夜添久久精品大 | 日本护士毛茸茸高潮 | 男女超爽视频免费播放 | 欧美怡红院免费全部视频 | 中文字幕无线码 | 亚洲熟妇自偷自拍另类 | 麻豆人妻少妇精品无码专区 | 成人无码精品1区2区3区免费看 | 亚洲七七久久桃花影院 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 无码av中文字幕免费放 | 国产精品va在线观看无码 | 狠狠色噜噜狠狠狠狠7777米奇 | 亚洲国产欧美国产综合一区 | 中文字幕人妻无码一夲道 | 国内精品人妻无码久久久影院 | www成人国产高清内射 | 无码纯肉视频在线观看 | 国产亚洲欧美日韩亚洲中文色 | 亚洲精品久久久久久久久久久 | 久久午夜无码鲁丝片午夜精品 | 玩弄中年熟妇正在播放 | 亚洲熟女一区二区三区 | 中文字幕av日韩精品一区二区 | 色综合久久网 | 精品国产一区二区三区四区在线看 | 精品一二三区久久aaa片 | 伊人久久大香线蕉午夜 | 亚洲人亚洲人成电影网站色 | 又紧又大又爽精品一区二区 | 色偷偷人人澡人人爽人人模 | 欧美 亚洲 国产 另类 | 国产无遮挡又黄又爽免费视频 | 亚洲一区二区三区在线观看网站 | 国内少妇偷人精品视频免费 | 88国产精品欧美一区二区三区 | www国产精品内射老师 | 麻豆精产国品 | 国产精品久免费的黄网站 | 欧美成人高清在线播放 | 成人av无码一区二区三区 | 精品成人av一区二区三区 | 亚洲欧美色中文字幕在线 | 国产国语老龄妇女a片 | 又大又硬又爽免费视频 | 玩弄中年熟妇正在播放 | 乱人伦人妻中文字幕无码 | 亚洲aⅴ无码成人网站国产app | 99久久99久久免费精品蜜桃 | 国产成人亚洲综合无码 | 亚洲欧美精品伊人久久 | 日本一本二本三区免费 | 女人被爽到呻吟gif动态图视看 | а√天堂www在线天堂小说 | 少妇被粗大的猛进出69影院 | 少妇一晚三次一区二区三区 | 色老头在线一区二区三区 | 国产麻豆精品精东影业av网站 | 全黄性性激高免费视频 | www国产亚洲精品久久久日本 | 久久99久久99精品中文字幕 | 精品偷拍一区二区三区在线看 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 一本大道伊人av久久综合 | 国内精品一区二区三区不卡 | 偷窥日本少妇撒尿chinese | 欧美日韩一区二区免费视频 | 97久久国产亚洲精品超碰热 | 亚洲成在人网站无码天堂 | 亚洲精品成人福利网站 | 麻豆精品国产精华精华液好用吗 | 精品水蜜桃久久久久久久 | 99精品久久毛片a片 | 久久精品中文字幕一区 | 成人毛片一区二区 | 亚洲经典千人经典日产 | 精品国偷自产在线 | 中文无码精品a∨在线观看不卡 | 久久久中文久久久无码 | 狠狠色丁香久久婷婷综合五月 | 一个人免费观看的www视频 | 窝窝午夜理论片影院 | 亚洲乱码国产乱码精品精 | 男女猛烈xx00免费视频试看 | 久久aⅴ免费观看 | 2020久久香蕉国产线看观看 | 玩弄少妇高潮ⅹxxxyw | 曰韩无码二三区中文字幕 | 骚片av蜜桃精品一区 | 人人妻人人澡人人爽精品欧美 | 久久综合九色综合欧美狠狠 | 99久久精品无码一区二区毛片 | 精品国产一区二区三区四区在线看 | 国产av剧情md精品麻豆 | 色一情一乱一伦一视频免费看 | 亚洲色欲色欲天天天www | 51国偷自产一区二区三区 | 大肉大捧一进一出好爽视频 | 中文字幕无码人妻少妇免费 | 亚洲欧美日韩成人高清在线一区 | 国产精品igao视频网 | 中文字幕中文有码在线 | 狠狠cao日日穞夜夜穞av | 激情内射亚州一区二区三区爱妻 | 中文字幕av伊人av无码av | 无码人妻丰满熟妇区五十路百度 | 国产乱人无码伦av在线a | 熟妇女人妻丰满少妇中文字幕 | 国产美女精品一区二区三区 | 亚洲精品久久久久久一区二区 | 色 综合 欧美 亚洲 国产 | 久久国产自偷自偷免费一区调 | 77777熟女视频在线观看 а天堂中文在线官网 | 久久无码人妻影院 | 国产精品亚洲专区无码不卡 | 久久久久久亚洲精品a片成人 | 久久久久se色偷偷亚洲精品av | 两性色午夜免费视频 | 日韩av无码一区二区三区不卡 | 天堂а√在线中文在线 | 欧美日韩亚洲国产精品 | 亚洲午夜无码久久 | 久久国产精品偷任你爽任你 | 激情内射亚州一区二区三区爱妻 | 中文字幕无码av波多野吉衣 | 国产人妻精品一区二区三区 | 久久综合给久久狠狠97色 | 性生交片免费无码看人 | 亚洲人成无码网www | 久久伊人色av天堂九九小黄鸭 | 99久久久无码国产aaa精品 | 人人妻在人人 | 樱花草在线播放免费中文 | 老熟女重囗味hdxx69 | 麻豆果冻传媒2021精品传媒一区下载 | 粗大的内捧猛烈进出视频 | 性色欲网站人妻丰满中文久久不卡 | 亚洲成av人片在线观看无码不卡 | 人人澡人人透人人爽 | 伊人久久大香线蕉亚洲 | 亚洲s码欧洲m码国产av | 亚洲娇小与黑人巨大交 | 亚洲成a人片在线观看无码 | 熟妇人妻无码xxx视频 | 国产黑色丝袜在线播放 | 国内精品人妻无码久久久影院 | 亚洲欧美中文字幕5发布 | 国产亚洲精品精品国产亚洲综合 | 97资源共享在线视频 | 18禁黄网站男男禁片免费观看 | 曰韩无码二三区中文字幕 | 亚洲日韩乱码中文无码蜜桃臀网站 | 色综合视频一区二区三区 | 久久久精品欧美一区二区免费 | 天堂无码人妻精品一区二区三区 | 小鲜肉自慰网站xnxx | 国产午夜手机精彩视频 | 熟妇人妻激情偷爽文 | 亚洲人成网站免费播放 | 午夜精品一区二区三区的区别 | 无码人妻精品一区二区三区下载 | 国产精品久久久久久久9999 | 日产精品高潮呻吟av久久 | 久久zyz资源站无码中文动漫 | 少妇高潮一区二区三区99 | 亚洲国产精品毛片av不卡在线 | 精品国产国产综合精品 | 成人精品一区二区三区中文字幕 | 国产成人综合色在线观看网站 | 亚洲国产成人a精品不卡在线 | 97久久超碰中文字幕 | 激情五月综合色婷婷一区二区 | 欧洲精品码一区二区三区免费看 | 久久久久国色av免费观看性色 | 国产成人精品优优av | 乱人伦人妻中文字幕无码 | 美女毛片一区二区三区四区 | 丝袜 中出 制服 人妻 美腿 | 欧美日韩视频无码一区二区三 | 亚洲精品一区二区三区四区五区 | 秋霞成人午夜鲁丝一区二区三区 | 亚洲日韩精品欧美一区二区 | 天干天干啦夜天干天2017 | 欧美精品国产综合久久 | 婷婷色婷婷开心五月四房播播 | 国产精品久久久一区二区三区 | 性欧美videos高清精品 | 国产精品自产拍在线观看 | 久久综合久久自在自线精品自 | 亚洲综合色区中文字幕 | 成人精品天堂一区二区三区 | 欧美熟妇另类久久久久久多毛 | 精品无人区无码乱码毛片国产 | 亚洲无人区午夜福利码高清完整版 | 国产成人亚洲综合无码 | 一本久道久久综合狠狠爱 | 亲嘴扒胸摸屁股激烈网站 | 久久久久成人精品免费播放动漫 | 一本色道婷婷久久欧美 | 色欲久久久天天天综合网精品 | 在线观看欧美一区二区三区 | 少妇人妻av毛片在线看 | 国产精品免费大片 | 一本大道伊人av久久综合 | 人妻插b视频一区二区三区 | yw尤物av无码国产在线观看 | 精品成在人线av无码免费看 | 国产精品亚洲а∨无码播放麻豆 | 99精品视频在线观看免费 | 成人影院yy111111在线观看 | 国产精品毛多多水多 | 国产无套内射久久久国产 | 台湾无码一区二区 | 成人免费无码大片a毛片 | 国产真人无遮挡作爱免费视频 | 亚洲一区二区三区在线观看网站 | 国产激情艳情在线看视频 | 亚洲中文字幕无码中文字在线 | 成人动漫在线观看 | 色综合久久中文娱乐网 | 曰本女人与公拘交酡免费视频 | 国产艳妇av在线观看果冻传媒 | 东京一本一道一二三区 | 久久精品国产亚洲精品 | 荫蒂被男人添的好舒服爽免费视频 | 国精产品一区二区三区 | 国产精品亚洲五月天高清 | 毛片内射-百度 | 日韩av无码一区二区三区不卡 | 国产精品久久久久影院嫩草 | 大地资源网第二页免费观看 | 天堂亚洲2017在线观看 | 免费观看又污又黄的网站 | 国产乱人伦av在线无码 | 久久国产36精品色熟妇 | 久久99久久99精品中文字幕 | 少妇被粗大的猛进出69影院 | 国产av无码专区亚洲a∨毛片 | 国产艳妇av在线观看果冻传媒 | 久久精品99久久香蕉国产色戒 | 国产亚洲人成在线播放 | 国产无遮挡又黄又爽又色 | 噜噜噜亚洲色成人网站 | 中文无码精品a∨在线观看不卡 | 麻豆精产国品 | 亲嘴扒胸摸屁股激烈网站 | 女人被男人躁得好爽免费视频 | 亚洲色www成人永久网址 | 国产成人精品优优av | 久久午夜无码鲁丝片午夜精品 | 成人一在线视频日韩国产 | 成人一在线视频日韩国产 | 丰满人妻一区二区三区免费视频 | 亚洲一区二区三区国产精华液 | 黑人巨大精品欧美一区二区 | 欧洲vodafone精品性 | 狂野欧美激情性xxxx | 国产一区二区三区日韩精品 | 精品久久综合1区2区3区激情 | 国产后入清纯学生妹 | 精品厕所偷拍各类美女tp嘘嘘 | 亚洲熟妇色xxxxx欧美老妇y | 欧美变态另类xxxx | 亚洲熟妇色xxxxx亚洲 | 国产午夜手机精彩视频 | 国产成人午夜福利在线播放 | 乱人伦人妻中文字幕无码 | 天天摸天天透天天添 | 成人av无码一区二区三区 | 久久精品中文闷骚内射 | 最近的中文字幕在线看视频 | 国产亚洲精品久久久久久国模美 | 国产精品亚洲一区二区三区喷水 | 精品国偷自产在线 | 人妻少妇精品无码专区动漫 | 欧美性黑人极品hd | 波多野结衣av一区二区全免费观看 | 亚洲国产精华液网站w | 成人欧美一区二区三区黑人免费 | 一本久道久久综合婷婷五月 | 俺去俺来也在线www色官网 | 国产精品美女久久久网av | 人人澡人人妻人人爽人人蜜桃 | 又紧又大又爽精品一区二区 | 午夜精品一区二区三区的区别 | 国产熟女一区二区三区四区五区 | 日本在线高清不卡免费播放 | 亚洲国产精品美女久久久久 | 国产亚洲精品久久久久久久久动漫 | 久久精品国产一区二区三区 | www国产亚洲精品久久久日本 | 中国女人内谢69xxxxxa片 | 亚洲精品无码人妻无码 | 熟女少妇人妻中文字幕 | 日日摸夜夜摸狠狠摸婷婷 | 日本一区二区更新不卡 | 亚洲色欲色欲欲www在线 | 狂野欧美性猛交免费视频 | 午夜无码区在线观看 | 久久天天躁夜夜躁狠狠 | 欧美人与动性行为视频 | 亚洲一区二区三区国产精华液 | 亚洲中文字幕久久无码 | 女高中生第一次破苞av | 成人欧美一区二区三区黑人免费 | 色综合久久88色综合天天 | 正在播放东北夫妻内射 | 精品国产国产综合精品 | 人妻熟女一区 | 欧洲欧美人成视频在线 | 一个人看的www免费视频在线观看 | 男女爱爱好爽视频免费看 | 少妇性l交大片欧洲热妇乱xxx | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 国产电影无码午夜在线播放 | 欧美国产日韩久久mv | 玩弄少妇高潮ⅹxxxyw | 纯爱无遮挡h肉动漫在线播放 | 午夜丰满少妇性开放视频 | 日本一区二区更新不卡 | 国产偷国产偷精品高清尤物 | 日日噜噜噜噜夜夜爽亚洲精品 | 亚洲色无码一区二区三区 | 国产精品无码成人午夜电影 | 丝袜美腿亚洲一区二区 | 国产亚洲精品久久久久久 | 装睡被陌生人摸出水好爽 | 国产成人精品一区二区在线小狼 | 中文字幕 人妻熟女 | 国产精品久久久久久久9999 | 18无码粉嫩小泬无套在线观看 | 国产精品美女久久久 | 男女猛烈xx00免费视频试看 | 欧美野外疯狂做受xxxx高潮 | 伊人久久大香线蕉av一区二区 | 天天做天天爱天天爽综合网 | 国产精品久久精品三级 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 色爱情人网站 | 老熟妇仑乱视频一区二区 | 国产亚洲日韩欧美另类第八页 | 欧美老妇交乱视频在线观看 | 人人爽人人澡人人人妻 | 国产福利视频一区二区 | 鲁鲁鲁爽爽爽在线视频观看 | 国产成人无码av片在线观看不卡 | 人人澡人摸人人添 | 又粗又大又硬毛片免费看 | 国产激情无码一区二区app | 精品一区二区三区无码免费视频 | 亚洲精品中文字幕 | 亚洲日韩av一区二区三区中文 | 男女作爱免费网站 | 在线观看免费人成视频 | 2020久久香蕉国产线看观看 | 亚洲色成人中文字幕网站 | 亚洲精品久久久久久一区二区 | 免费网站看v片在线18禁无码 | 婷婷综合久久中文字幕蜜桃三电影 | 夜夜高潮次次欢爽av女 | 国产无遮挡吃胸膜奶免费看 | 中文字幕无码视频专区 | 精品国产av色一区二区深夜久久 | 欧美 日韩 亚洲 在线 | 少妇人妻偷人精品无码视频 | 日日噜噜噜噜夜夜爽亚洲精品 | 色综合天天综合狠狠爱 | 国产av剧情md精品麻豆 | 久热国产vs视频在线观看 | 久久婷婷五月综合色国产香蕉 | 久久久久久久人妻无码中文字幕爆 | 国产无套内射久久久国产 | 亚洲欧洲日本综合aⅴ在线 | 无码吃奶揉捏奶头高潮视频 | 天堂无码人妻精品一区二区三区 | 人人妻在人人 | 精品久久久无码人妻字幂 | 自拍偷自拍亚洲精品被多人伦好爽 | 国产熟妇另类久久久久 | 狠狠色噜噜狠狠狠狠7777米奇 | 国产sm调教视频在线观看 | 性欧美大战久久久久久久 | 黄网在线观看免费网站 | 久久精品人人做人人综合 | 性啪啪chinese东北女人 | 国产suv精品一区二区五 | 精品无码国产一区二区三区av | 少妇无码av无码专区在线观看 | 野狼第一精品社区 | 国产成人一区二区三区别 | 亚洲 另类 在线 欧美 制服 | 丰满人妻一区二区三区免费视频 | 人妻无码αv中文字幕久久琪琪布 | 精品熟女少妇av免费观看 | 丰满少妇高潮惨叫视频 | 亚洲国产精品久久人人爱 | 麻豆成人精品国产免费 | 88国产精品欧美一区二区三区 | 久久久久久久久888 | 无码国模国产在线观看 | 日本熟妇乱子伦xxxx | 丝袜足控一区二区三区 | 国产真实夫妇视频 | 久久人人97超碰a片精品 | 成熟女人特级毛片www免费 | 日韩精品久久久肉伦网站 | 精品无码国产一区二区三区av | 精品熟女少妇av免费观看 | 久久久久久久人妻无码中文字幕爆 | 久久综合狠狠综合久久综合88 | 99精品视频在线观看免费 | 乌克兰少妇xxxx做受 | 日韩精品成人一区二区三区 | 亚洲 另类 在线 欧美 制服 | 特级做a爰片毛片免费69 | 国产精品丝袜黑色高跟鞋 | 日韩精品成人一区二区三区 | 色欲av亚洲一区无码少妇 | 国产女主播喷水视频在线观看 | 亚洲 另类 在线 欧美 制服 | 麻豆国产丝袜白领秘书在线观看 | 亚洲天堂2017无码中文 | 夜夜夜高潮夜夜爽夜夜爰爰 | 亚洲日本在线电影 | 97无码免费人妻超级碰碰夜夜 | 欧美 丝袜 自拍 制服 另类 | 国内精品九九久久久精品 | 成人欧美一区二区三区黑人免费 | 色一情一乱一伦一区二区三欧美 | 无码成人精品区在线观看 | 女人被爽到呻吟gif动态图视看 | 99久久人妻精品免费二区 | 亚洲成av人在线观看网址 | 波多野结衣 黑人 | 亚洲欧美国产精品专区久久 | 福利一区二区三区视频在线观看 | 成人亚洲精品久久久久软件 | 色爱情人网站 | 亚洲中文字幕无码中文字在线 | 亚洲精品午夜无码电影网 | 国产激情艳情在线看视频 | 天堂久久天堂av色综合 | a国产一区二区免费入口 | 国产激情无码一区二区app | 夜夜影院未满十八勿进 | 亚洲 高清 成人 动漫 | 日韩精品无码一本二本三本色 | 国产成人无码av片在线观看不卡 | 中文字幕无码av波多野吉衣 | 国产人妻精品一区二区三区不卡 | 国内少妇偷人精品视频免费 | 久久国产36精品色熟妇 | 国产情侣作爱视频免费观看 | 性史性农村dvd毛片 | 久9re热视频这里只有精品 | 在线成人www免费观看视频 | 成熟妇人a片免费看网站 | 亚洲中文无码av永久不收费 | 国产精品人人爽人人做我的可爱 | 久热国产vs视频在线观看 | 18禁止看的免费污网站 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 爽爽影院免费观看 | 成人欧美一区二区三区黑人 | 狠狠色噜噜狠狠狠狠7777米奇 | 亚洲成av人片在线观看无码不卡 | 国产精品高潮呻吟av久久4虎 | 极品嫩模高潮叫床 | 久久综合狠狠综合久久综合88 | 又色又爽又黄的美女裸体网站 | 成人精品视频一区二区 | 欧美日韩视频无码一区二区三 | 51国偷自产一区二区三区 | 亚洲精品中文字幕久久久久 | 老熟女乱子伦 | 国产在线精品一区二区高清不卡 | 免费无码av一区二区 | 久久伊人色av天堂九九小黄鸭 | 欧美成人免费全部网站 | 天海翼激烈高潮到腰振不止 | 5858s亚洲色大成网站www | 在线播放免费人成毛片乱码 | 日本xxxx色视频在线观看免费 | 午夜福利一区二区三区在线观看 | 欧美一区二区三区 | 无码帝国www无码专区色综合 | 国产精品无码一区二区桃花视频 | 97久久精品无码一区二区 | 亲嘴扒胸摸屁股激烈网站 | 激情国产av做激情国产爱 | 熟妇人妻无码xxx视频 | 女人高潮内射99精品 | 无码国产色欲xxxxx视频 | 亚洲国产午夜精品理论片 | av人摸人人人澡人人超碰下载 | 中文无码成人免费视频在线观看 | 人妻少妇精品视频专区 | 精品国偷自产在线 | 国产亚洲精品久久久久久大师 | 四十如虎的丰满熟妇啪啪 | 香港三级日本三级妇三级 | 特黄特色大片免费播放器图片 | 国内精品久久毛片一区二区 | 亚洲乱码国产乱码精品精 | 日日麻批免费40分钟无码 | 日韩人妻系列无码专区 | 麻豆成人精品国产免费 | 四十如虎的丰满熟妇啪啪 | 在线视频网站www色 | 天堂在线观看www | 黄网在线观看免费网站 | 大地资源网第二页免费观看 | 免费中文字幕日韩欧美 | 亚洲精品午夜无码电影网 | 精品偷自拍另类在线观看 | 永久免费观看美女裸体的网站 | 熟女少妇人妻中文字幕 | 久久人妻内射无码一区三区 | 无遮挡国产高潮视频免费观看 | 一本久道久久综合婷婷五月 | 特大黑人娇小亚洲女 | 性欧美videos高清精品 | 性欧美牲交xxxxx视频 | 午夜福利一区二区三区在线观看 | 草草网站影院白丝内射 | 亚洲中文字幕无码一久久区 | 人妻少妇精品无码专区动漫 | 久久久婷婷五月亚洲97号色 | 中文字幕人妻无码一区二区三区 | 亚洲色欲色欲欲www在线 | 国模大胆一区二区三区 | 国产高清不卡无码视频 | 中文字幕无码av激情不卡 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 国产亚洲人成a在线v网站 | 中文字幕乱妇无码av在线 | 午夜精品久久久久久久久 | 精品成在人线av无码免费看 | 女人和拘做爰正片视频 | www国产亚洲精品久久网站 | 久久综合九色综合97网 | 久久久久免费看成人影片 | 对白脏话肉麻粗话av | 国产亚洲精品久久久久久久久动漫 | 少妇性俱乐部纵欲狂欢电影 | 色综合久久网 | 日韩人妻无码一区二区三区久久99 | 亚洲欧洲日本无在线码 | 国产高清不卡无码视频 | 精品国产一区二区三区av 性色 | 欧美精品无码一区二区三区 | 国产精品免费大片 | 国产精品福利视频导航 | 少妇无码一区二区二三区 | 免费人成网站视频在线观看 | 天天燥日日燥 | 国产精品久久久久久亚洲影视内衣 | 中文字幕久久久久人妻 | 熟妇人妻中文av无码 | 日本高清一区免费中文视频 | 午夜嘿嘿嘿影院 | 欧美亚洲日韩国产人成在线播放 | 日韩精品乱码av一区二区 | 国产成人精品必看 | 真人与拘做受免费视频一 | 国产精品嫩草久久久久 | av在线亚洲欧洲日产一区二区 | 高潮喷水的毛片 | www国产亚洲精品久久久日本 | 亚洲中文字幕成人无码 | 四虎4hu永久免费 | 色欲人妻aaaaaaa无码 | 久久亚洲a片com人成 | 久久人妻内射无码一区三区 | 人人超人人超碰超国产 | 国产尤物精品视频 | 中文字幕日产无线码一区 | 国产无遮挡又黄又爽又色 | 精品水蜜桃久久久久久久 | √8天堂资源地址中文在线 | 天天拍夜夜添久久精品 | 人人超人人超碰超国产 | 日本爽爽爽爽爽爽在线观看免 | 久久精品国产亚洲精品 | 男女性色大片免费网站 | 国产凸凹视频一区二区 | 国产两女互慰高潮视频在线观看 | 亚洲一区av无码专区在线观看 | 久久精品国产日本波多野结衣 | 欧美喷潮久久久xxxxx | 伊人久久大香线蕉午夜 | 国产综合在线观看 | 成人av无码一区二区三区 | 国产午夜无码视频在线观看 | 免费观看的无遮挡av | 成人免费无码大片a毛片 | 88国产精品欧美一区二区三区 | 国产精品久久久一区二区三区 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 欧美激情综合亚洲一二区 | 中文毛片无遮挡高清免费 | 67194成是人免费无码 | 无套内射视频囯产 | 人人爽人人爽人人片av亚洲 | 日本大乳高潮视频在线观看 | 精品国产国产综合精品 | 国产亚洲视频中文字幕97精品 | 99久久久无码国产aaa精品 | 男人的天堂av网站 | 欧美丰满老熟妇xxxxx性 | 久久精品人人做人人综合试看 | 午夜免费福利小电影 | 国产精品无码mv在线观看 | 色五月丁香五月综合五月 | 精品久久久久久亚洲精品 | 国产婷婷色一区二区三区在线 | 国产成人无码专区 | 人妻互换免费中文字幕 | 成人欧美一区二区三区黑人免费 | 精品偷自拍另类在线观看 | 亚洲综合伊人久久大杳蕉 | 久久精品国产亚洲精品 | 国产成人无码av一区二区 | 亚洲一区av无码专区在线观看 | 欧美大屁股xxxxhd黑色 | 乱人伦中文视频在线观看 | 国产成人午夜福利在线播放 | 亚洲自偷自拍另类第1页 | 亚洲综合在线一区二区三区 | 精品人妻中文字幕有码在线 | 亚洲乱亚洲乱妇50p | 大胆欧美熟妇xx | 亚洲七七久久桃花影院 | 亚洲色大成网站www国产 | 欧美第一黄网免费网站 | 人人超人人超碰超国产 | 99久久99久久免费精品蜜桃 | 国产精品高潮呻吟av久久 | 日产精品高潮呻吟av久久 | 久久国产精品偷任你爽任你 | 亚洲色欲色欲天天天www | www成人国产高清内射 | 久久亚洲日韩精品一区二区三区 | 亚洲精品国产a久久久久久 | 日欧一片内射va在线影院 | 麻豆国产人妻欲求不满谁演的 | 亚洲熟妇自偷自拍另类 | 无码毛片视频一区二区本码 | 亚洲爆乳精品无码一区二区三区 | 久久99久久99精品中文字幕 | 日本一卡二卡不卡视频查询 | 3d动漫精品啪啪一区二区中 | 成在人线av无码免观看麻豆 | 久久精品国产精品国产精品污 | 亚洲 激情 小说 另类 欧美 | 狠狠色丁香久久婷婷综合五月 | 国产成人无码午夜视频在线观看 | 草草网站影院白丝内射 | 女人被男人爽到呻吟的视频 | 亚洲精品一区二区三区婷婷月 | 国产成人无码av片在线观看不卡 | 无套内谢的新婚少妇国语播放 | 国产乡下妇女做爰 | 午夜时刻免费入口 | 无码帝国www无码专区色综合 | 98国产精品综合一区二区三区 | 大胆欧美熟妇xx | 麻豆av传媒蜜桃天美传媒 | 免费人成在线观看网站 | 国内丰满熟女出轨videos | 亚洲国产精品久久人人爱 | 久久久www成人免费毛片 | 性欧美大战久久久久久久 | 国产一区二区不卡老阿姨 | 欧美刺激性大交 | av在线亚洲欧洲日产一区二区 | 欧美xxxx黑人又粗又长 | 亚洲无人区午夜福利码高清完整版 | 久久婷婷五月综合色国产香蕉 | 欧美性猛交xxxx富婆 | 日韩人妻系列无码专区 | 成 人 免费观看网站 | 一本色道久久综合亚洲精品不卡 | 一本久久a久久精品亚洲 | 国产人成高清在线视频99最全资源 | 性欧美大战久久久久久久 | 无码av最新清无码专区吞精 | 奇米影视7777久久精品人人爽 | 亚洲乱亚洲乱妇50p | 任你躁在线精品免费 | 内射巨臀欧美在线视频 | 亚洲欧洲日本无在线码 | 中文字幕无码视频专区 | 天天av天天av天天透 | 又色又爽又黄的美女裸体网站 | 欧美成人午夜精品久久久 | 国产精品美女久久久久av爽李琼 | 国产亚洲精品久久久久久大师 | 欧美猛少妇色xxxxx | 永久免费观看国产裸体美女 | 日韩少妇内射免费播放 | 男人扒开女人内裤强吻桶进去 | 一本一道久久综合久久 | 成人毛片一区二区 | 亚洲熟妇色xxxxx欧美老妇 | 无码纯肉视频在线观看 | 亚洲日本在线电影 | 亚洲欧美色中文字幕在线 | 亚洲熟女一区二区三区 | 人妻少妇精品无码专区动漫 | 性欧美牲交xxxxx视频 | 久久国产精品二国产精品 | 国产av无码专区亚洲a∨毛片 | 亚洲精品综合五月久久小说 | 精品一区二区三区波多野结衣 | 伊人色综合久久天天小片 | 亚洲乱码日产精品bd | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 极品嫩模高潮叫床 | 天天躁日日躁狠狠躁免费麻豆 | 日韩精品乱码av一区二区 | 日本又色又爽又黄的a片18禁 | 18精品久久久无码午夜福利 | 300部国产真实乱 | 国产97人人超碰caoprom | 日韩人妻无码中文字幕视频 | 夫妻免费无码v看片 | 少妇高潮一区二区三区99 | 久久久亚洲欧洲日产国码αv | 免费观看激色视频网站 | 99久久人妻精品免费一区 | 久久久www成人免费毛片 | 日韩少妇内射免费播放 | 精品欧洲av无码一区二区三区 | 日本一区二区更新不卡 | 久久婷婷五月综合色国产香蕉 | 成人免费视频一区二区 | 无码毛片视频一区二区本码 | 精品乱码久久久久久久 | 99久久99久久免费精品蜜桃 | 少妇厨房愉情理9仑片视频 | 思思久久99热只有频精品66 | 精品国产一区二区三区av 性色 | 亚洲狠狠婷婷综合久久 | 俺去俺来也www色官网 | 成人一在线视频日韩国产 | 任你躁在线精品免费 | 免费网站看v片在线18禁无码 | 国产一区二区三区精品视频 | 国产熟女一区二区三区四区五区 | 婷婷综合久久中文字幕蜜桃三电影 | 国产精品久久福利网站 | 人人妻人人澡人人爽欧美一区九九 | 免费观看激色视频网站 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 两性色午夜视频免费播放 | 5858s亚洲色大成网站www | 亚洲大尺度无码无码专区 | 久久综合久久自在自线精品自 | 国产va免费精品观看 | 国产九九九九九九九a片 | 午夜无码人妻av大片色欲 | 国内精品久久毛片一区二区 | 国产热a欧美热a在线视频 | 国产在线一区二区三区四区五区 | 亚洲国产精品久久久天堂 | 成人免费无码大片a毛片 | a国产一区二区免费入口 | 亚洲国产综合无码一区 | 精品乱码久久久久久久 | 亚洲成a人一区二区三区 | 日本又色又爽又黄的a片18禁 | 夜夜躁日日躁狠狠久久av | 嫩b人妻精品一区二区三区 | 欧美丰满老熟妇xxxxx性 | 久久亚洲a片com人成 | 永久免费观看国产裸体美女 | 少妇太爽了在线观看 | 麻花豆传媒剧国产免费mv在线 | 性色欲网站人妻丰满中文久久不卡 | 99久久精品日本一区二区免费 | 精品偷拍一区二区三区在线看 | 中文字幕中文有码在线 | 曰本女人与公拘交酡免费视频 | 爽爽影院免费观看 | 精品久久久无码中文字幕 | 亚洲精品综合五月久久小说 | 日本饥渴人妻欲求不满 | 成人一在线视频日韩国产 | 精品国精品国产自在久国产87 | 久久久久亚洲精品男人的天堂 | 久久精品丝袜高跟鞋 | 成人免费视频在线观看 | 成人无码精品1区2区3区免费看 | 精品偷拍一区二区三区在线看 | 亚洲 日韩 欧美 成人 在线观看 | 理论片87福利理论电影 | www国产精品内射老师 | 黄网在线观看免费网站 | 成人无码精品一区二区三区 | 色综合视频一区二区三区 | 丰满人妻翻云覆雨呻吟视频 | 欧美真人作爱免费视频 | 国产高潮视频在线观看 | 蜜桃视频韩日免费播放 | 丰满妇女强制高潮18xxxx | 无码人妻出轨黑人中文字幕 | 久久精品99久久香蕉国产色戒 | 国产激情一区二区三区 | 蜜臀aⅴ国产精品久久久国产老师 | 国产成人精品一区二区在线小狼 | 又大又硬又爽免费视频 | 无码人中文字幕 | а√资源新版在线天堂 | 国产猛烈高潮尖叫视频免费 | 久久国产精品萌白酱免费 | 一本精品99久久精品77 | 国产一区二区三区四区五区加勒比 | 性生交片免费无码看人 | 日韩av无码中文无码电影 | 欧美性生交活xxxxxdddd | 国产小呦泬泬99精品 | 亚洲日韩av片在线观看 | 帮老师解开蕾丝奶罩吸乳网站 | 日韩视频 中文字幕 视频一区 | 亚洲一区二区三区国产精华液 | 国产精品欧美成人 | 国产又爽又黄又刺激的视频 | 久久99热只有频精品8 | 97精品国产97久久久久久免费 | 国产莉萝无码av在线播放 | www国产亚洲精品久久网站 | 日韩av无码中文无码电影 | 国产尤物精品视频 | 亚洲小说图区综合在线 | 男女性色大片免费网站 | 国产又粗又硬又大爽黄老大爷视 | 欧美精品一区二区精品久久 | 亚洲精品国产品国语在线观看 | 人妻熟女一区 | 鲁鲁鲁爽爽爽在线视频观看 | 久久久久久久久蜜桃 | 人妻无码久久精品人妻 | 亚洲男女内射在线播放 | 亚洲码国产精品高潮在线 | 亚洲成av人综合在线观看 | 免费无码午夜福利片69 | 99久久99久久免费精品蜜桃 | 精品人妻中文字幕有码在线 | 国产精品多人p群无码 | 中国女人内谢69xxxxxa片 | 图片区 小说区 区 亚洲五月 | 国产精品久久久午夜夜伦鲁鲁 | 久久aⅴ免费观看 | 久久天天躁狠狠躁夜夜免费观看 | 精品无码av一区二区三区 | 蜜臀av在线播放 久久综合激激的五月天 | 久久久中文字幕日本无吗 | 亚洲国产精品无码一区二区三区 | 男女作爱免费网站 | 亚洲欧美精品伊人久久 | 性做久久久久久久久 | 国产av久久久久精东av | 强伦人妻一区二区三区视频18 | 精品国产精品久久一区免费式 | 欧美日韩视频无码一区二区三 | 久久99精品国产.久久久久 | 男女作爱免费网站 | 亚洲va欧美va天堂v国产综合 | 欧美喷潮久久久xxxxx | 东京无码熟妇人妻av在线网址 | a在线观看免费网站大全 | 亚洲人成影院在线观看 | 色欲久久久天天天综合网精品 | 亚洲乱码中文字幕在线 | 中文字幕av无码一区二区三区电影 | 美女毛片一区二区三区四区 | 午夜无码区在线观看 | 亚洲精品中文字幕 | 97夜夜澡人人爽人人喊中国片 | 亚洲最大成人网站 | 又大又紧又粉嫩18p少妇 | 亚洲国产精品成人久久蜜臀 | 六十路熟妇乱子伦 | 亚洲成熟女人毛毛耸耸多 | 精品国产麻豆免费人成网站 | 日韩人妻少妇一区二区三区 | 秋霞成人午夜鲁丝一区二区三区 | 国产三级精品三级男人的天堂 | 俄罗斯老熟妇色xxxx | 亚洲va中文字幕无码久久不卡 | 婷婷五月综合激情中文字幕 | 亚洲a无码综合a国产av中文 | 久久综合激激的五月天 | 亚洲а∨天堂久久精品2021 | 久久国内精品自在自线 | 97久久超碰中文字幕 | 欧美真人作爱免费视频 | 婷婷丁香五月天综合东京热 | 欧美熟妇另类久久久久久不卡 | 一区二区三区乱码在线 | 欧洲 | 亚洲色www成人永久网址 | 久久国产36精品色熟妇 | 无遮挡国产高潮视频免费观看 | 欧美怡红院免费全部视频 | 亚洲人成影院在线无码按摩店 | 亚洲成熟女人毛毛耸耸多 | 国产成人一区二区三区别 | 久久久成人毛片无码 | 麻豆av传媒蜜桃天美传媒 | 牛和人交xxxx欧美 | 中文字幕色婷婷在线视频 | 在线播放亚洲第一字幕 | 亚洲aⅴ无码成人网站国产app | 台湾无码一区二区 | 理论片87福利理论电影 | 亚洲一区二区三区在线观看网站 | 最新国产乱人伦偷精品免费网站 | 国产麻豆精品精东影业av网站 | 性史性农村dvd毛片 | 免费中文字幕日韩欧美 | 在线播放无码字幕亚洲 | 5858s亚洲色大成网站www | 九九久久精品国产免费看小说 | 国内精品一区二区三区不卡 | 中文无码精品a∨在线观看不卡 | 精品国产青草久久久久福利 | 亚洲无人区一区二区三区 | 67194成是人免费无码 | 国产精品多人p群无码 | 国产亚洲精品久久久久久国模美 | 99久久精品国产一区二区蜜芽 | 国产无遮挡又黄又爽又色 | 欧美丰满少妇xxxx性 | 成人精品视频一区二区 | 久青草影院在线观看国产 | 人妻少妇精品无码专区二区 | 97se亚洲精品一区 | 超碰97人人做人人爱少妇 | 永久免费观看国产裸体美女 | 人人妻人人澡人人爽人人精品浪潮 | 成人欧美一区二区三区黑人 | 久久久久久久久蜜桃 | 日本一卡二卡不卡视频查询 | 人妻人人添人妻人人爱 | 无码av岛国片在线播放 | 四虎影视成人永久免费观看视频 | 最近免费中文字幕中文高清百度 | 欧美高清在线精品一区 | 荡女精品导航 | 亚洲日韩av一区二区三区中文 | 久久精品视频在线看15 | 亚洲人成影院在线无码按摩店 | 日本又色又爽又黄的a片18禁 | 久久久精品欧美一区二区免费 | 亚洲成av人在线观看网址 | av在线亚洲欧洲日产一区二区 | 天天摸天天透天天添 | 大色综合色综合网站 | 亚洲一区二区三区播放 | 久9re热视频这里只有精品 | 午夜男女很黄的视频 | 欧美日韩视频无码一区二区三 | 午夜男女很黄的视频 | 国产成人一区二区三区在线观看 | 99久久亚洲精品无码毛片 | 国产激情无码一区二区app | 中文字幕无码免费久久99 | 5858s亚洲色大成网站www | 色老头在线一区二区三区 | 国产av久久久久精东av | 国产精品第一区揄拍无码 | 无码中文字幕色专区 | 成 人 网 站国产免费观看 | 国产精品无码永久免费888 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 香蕉久久久久久av成人 | 亚洲熟妇色xxxxx亚洲 | 日日干夜夜干 | 亚洲精品久久久久中文第一幕 | 成人影院yy111111在线观看 | 日本xxxx色视频在线观看免费 | 日韩av无码中文无码电影 | 狠狠躁日日躁夜夜躁2020 | 一本无码人妻在中文字幕免费 | 风流少妇按摩来高潮 | 性色欲情网站iwww九文堂 | 又湿又紧又大又爽a视频国产 | 亚洲日韩av片在线观看 | 久久熟妇人妻午夜寂寞影院 | 麻豆国产人妻欲求不满 | 性欧美疯狂xxxxbbbb | 波多野42部无码喷潮在线 | 狠狠色丁香久久婷婷综合五月 | 国产精品无码久久av | 亚洲爆乳无码专区 | 欧美性生交活xxxxxdddd | 国产精品对白交换视频 | 黑人粗大猛烈进出高潮视频 | 久久久国产一区二区三区 | 亲嘴扒胸摸屁股激烈网站 | 性欧美大战久久久久久久 | 蜜桃视频韩日免费播放 | 精品国偷自产在线 | 亚洲精品国产a久久久久久 | 国产无套粉嫩白浆在线 | 无码吃奶揉捏奶头高潮视频 | 东京热一精品无码av | 国产深夜福利视频在线 | 成人aaa片一区国产精品 | 亚洲爆乳大丰满无码专区 | 亚洲国产欧美国产综合一区 | 亚洲а∨天堂久久精品2021 | 国产高潮视频在线观看 | 黑人巨大精品欧美黑寡妇 | 无码国产激情在线观看 | 日本熟妇乱子伦xxxx | 国产成人无码av一区二区 | 国产精品理论片在线观看 | 久精品国产欧美亚洲色aⅴ大片 | 欧美阿v高清资源不卡在线播放 | 大色综合色综合网站 | 激情五月综合色婷婷一区二区 | 国产精品久久久久影院嫩草 | 久久婷婷五月综合色国产香蕉 | 又黄又爽又色的视频 | 亚洲熟妇自偷自拍另类 | 日本欧美一区二区三区乱码 | 国产成人久久精品流白浆 | 中文字幕+乱码+中文字幕一区 | 99riav国产精品视频 | 久久伊人色av天堂九九小黄鸭 | 国产亚洲tv在线观看 | 国产精品久久久久无码av色戒 | 300部国产真实乱 | 成人无码视频在线观看网站 | 一本色道久久综合亚洲精品不卡 | 特黄特色大片免费播放器图片 | 无码吃奶揉捏奶头高潮视频 | 成人免费视频视频在线观看 免费 | 亚洲人成无码网www | 国产精品毛片一区二区 | 免费无码的av片在线观看 | 无码乱肉视频免费大全合集 | 无码国产乱人伦偷精品视频 | 无码任你躁久久久久久久 | 久久 国产 尿 小便 嘘嘘 | 午夜成人1000部免费视频 | 国产午夜福利100集发布 | 夜夜高潮次次欢爽av女 | 特大黑人娇小亚洲女 | 免费观看激色视频网站 | 亚洲日本在线电影 | 中文字幕人成乱码熟女app | 国产疯狂伦交大片 | 亚洲综合无码一区二区三区 | 嫩b人妻精品一区二区三区 | 国产精品自产拍在线观看 | 亚洲综合久久一区二区 | 欧美丰满少妇xxxx性 | 色婷婷av一区二区三区之红樱桃 | 欧美喷潮久久久xxxxx | 国产综合色产在线精品 | 精品无码国产自产拍在线观看蜜 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 强奷人妻日本中文字幕 | 久久国产精品_国产精品 | 欧美一区二区三区 | 欧美激情一区二区三区成人 | 97人妻精品一区二区三区 | 国内综合精品午夜久久资源 | 亚洲区欧美区综合区自拍区 | 亚洲精品一区二区三区在线观看 | 欧美野外疯狂做受xxxx高潮 | 日本精品人妻无码免费大全 | yw尤物av无码国产在线观看 | 久久久久久av无码免费看大片 | 人人澡人人透人人爽 | 亚洲一区av无码专区在线观看 | 欧美激情一区二区三区成人 | 亚洲欧洲日本综合aⅴ在线 | 俄罗斯老熟妇色xxxx |