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

【數(shù)據(jù)結構之鏈表】詳細圖文教你花樣玩鏈表

開發(fā) 前端
單鏈表的每個結點只有一個數(shù)據(jù)域和一個指針域,而該指針域只存儲了下一個結點的地址,所以我們只能通過某結點找到其直接后繼結點,卻不能通過某節(jié)點找到其直接前驅結點。

[[392598]]

0. 提要鉤玄

 前面在文章【數(shù)據(jù)結構之鏈表】看完這篇文章我終于搞懂鏈表了中已經(jīng)介紹了鏈式存儲結構,介紹了鏈式存儲結構的最基本(簡單)實現(xiàn)——單向鏈表。

單向鏈表,顧名思義,它是單向的。

因為單鏈表的每個結點只有一個數(shù)據(jù)域和一個指針域,而該指針域只存儲了下一個結點的地址,所以我們只能通過某結點找到其直接后繼結點,卻不能通過某節(jié)點找到其直接前驅結點。

此外,由于單鏈表到尾結點(鏈表的最后一個結點)結束,所以尾結點的指針域是 NULL,以此來表示鏈表的終止,這就導致我們遍歷到尾結點的時候,如果想再次遍歷,只能手動回到頭結點再開始遍歷。

為了彌補單鏈表的上面兩個缺點,下面介紹兩種鏈表,它們都是單鏈表的變形,如果你理解了單鏈表,那么會很容易理解這兩種變形。

 

目錄

1. 單向循環(huán)鏈表

1.1. 結構

單鏈表的尾結點的指針域是 NULL,所以單鏈表到此終止。如果我們使用單鏈表的尾結點的指針域存儲頭結點的地址,即尾結點的直接后繼結點為頭結點,如此一來,單鏈表就構成了一個環(huán)(循環(huán)),稱之為單項循環(huán)鏈表。


1.2. 實現(xiàn)思路

單向循環(huán)鏈表是由單鏈表進化而來的,算是單鏈表的“兒子”,所以單鏈表的那一套結構對于單向循環(huán)鏈表來說完全適用,從上圖你也可以看出,結構并無較大改變,二者所不同只在尾結點,所以我們只需要在尾結點和與尾結點相關的操作上下功夫就行了。

因此,單向循環(huán)鏈表的結構體和單鏈表的結構體相同。

  1. /*單向循環(huán)鏈表的結點的結構體*/ 
  2. typedef struct _Node { 
  3.     int data; //數(shù)據(jù)域:存儲數(shù)據(jù) 
  4.     struct _Node *next; //指針域:存儲直接后繼結點的地址 
  5. } Node; 

為了統(tǒng)一對空鏈表和非空鏈表的操作,我們使用帶頭結點的鏈表來實現(xiàn)它。

1.3. 空鏈表及初始化

一個空鏈表如圖所示,只有一個頭指針和頭結點:

空鏈表

頭結點的指針域指向其本身構成一個循環(huán),我們可以借此來判斷鏈表是否為空。

  1. if (head->next == head) { 
  2.     printf("空鏈表。\n"); 

想要初始化一個空鏈表很簡單,創(chuàng)造頭結點,使頭結點的 next 指針指向其自身即可:

  1. Node *create_node(int elem) 
  2.     Node *new = (Node *) malloc(sizeof(Node)); 
  3.     new->data = elem; 
  4.     new->next = NULL
  5.     return new; 
  6.  
  7. /** 
  8.  * 初始化鏈表 
  9.  * p_head: 指向頭指針的指針 
  10.  */ 
  11. void init(Node **p_head) 
  12.     //創(chuàng)建頭結點 
  13.     Node *head_node = create_node(0); 
  14.     //頭指針指向頭結點 
  15.     *p_head = head_node; 
  16.     //頭結點的next指針指向其本身,構成環(huán) 
  17.     head_node->next = head_node; 

1.4. 插入操作

這里只演示頭插法和尾插法

【頭插法】

因為帶頭結點,所以不需要考慮是否為空鏈表。下圖是向空鏈表中頭插兩個元素的過程:

單向循環(huán)鏈表頭插法過程

  1. /** 
  2.  * 頭插法,新結點為頭結點的直接后繼 
  3.  * p_head: 指向頭指針的指針 
  4.  * elem: 新結點的數(shù)據(jù) 
  5.  */ 
  6. void insert_at_head(Node **p_head, int elem) 
  7.     Node *new = create_node(elem); 
  8.     Node *head_node = *p_head; //頭結點 
  9.     //新結點插入頭結點之后 
  10.     new->next = head_node->next
  11.     head_node->next = new; 

【尾插法】

因為為了盡量簡單,所以我們并沒有設置指向尾結點的尾指針,所以在尾插之前,需要先借助某個指針,遍歷至尾結點,然后再插入。

  1. /** 
  2.  * 尾插法:新插入的結點始終在鏈表尾 
  3.  * p_head: 指向頭指針的指針 
  4.  * elem: 新結點的數(shù)據(jù) 
  5.  */ 
  6. void insert_at_tail(Node **p_head, int elem) 
  7.     Node *new = create_node(elem); 
  8.     Node *head_node = *p_head; //頭結點 
  9.     Node *tail = head_node; //tail指針指向頭結點 
  10.     while (tail->next != head_node) { //tail遍歷至鏈表尾 
  11.         tail = tail->next
  12.     } 
  13.     //尾插 
  14.     new->next = tail->next
  15.     tail->next = new; 

1.5. 刪除操作

刪除的本質(zhì)是“跳過”待刪除的結點,所以我們要找到待刪除結點的直接前驅結點,然后讓其直接前驅結點的 next 指針指向其直接后繼結點,以此來“跳過”待刪除結點,最后保存其數(shù)據(jù)域,釋放結點,即完成刪除。

這里只演示頭刪法。

因為刪除的是頭結點的直接后繼結點,所以我們不必再費力尋找待刪除結點的直接前驅結點了。

單向循環(huán)鏈表頭刪法過程

  1. /** 
  2.  * 頭刪法:刪除頭結點之后的結點 
  3.  * p_head: 指向頭指針的指針 
  4.  * elem: 指向保存數(shù)據(jù)變量的指針 
  5.  */ 
  6. void delete_from_head(Node **p_head, int *elem) 
  7.     Node *head_node = *p_head; //頭結點 
  8.     if (head_node->next == head_node) { 
  9.         printf("空鏈表,無元素可刪。\n"); 
  10.         return
  11.     } 
  12.     Node *first_node = head_node->next; //首結點:頭結點的下一個結點 
  13.     *elem = first_node->data; //保存被刪除結點的數(shù)據(jù) 
  14.     head_node->next = first_node->next; //刪除結點 
  15.     free(first_node); //釋放 

1.6. 遍歷操作

我們可以一圈又一圈地循環(huán)遍歷鏈表,下面是循環(huán)打印 20 次結點地代碼:

  1. /** 
  2.  * 循環(huán)打印20次結點 
  3.  */ 
  4. void output_20(Node *head) 
  5.     if (head->next == head) { 
  6.         printf("空鏈表。\n"); 
  7.         return
  8.     } 
  9.     Node *p = head->next
  10.     for (int i = 0; i <= 20; i++) { 
  11.         if (p != head) { //不打印頭結點 
  12.             printf("%d ", p->data); 
  13.         } 
  14.         p = p->next
  15.     } 
  16.     printf("\n"); 

2. 雙向鏈表

2.1. 結構

顧名思義,雙向鏈表,就是有兩個方向,一個指向前,一個指向后。這樣我們就彌補了單鏈表的某個結點只能找到其直接后繼的缺陷。如圖所示:

雙向鏈表

2.2. 實現(xiàn)思路

為了實現(xiàn)能指前和指后的效果,只靠 next 指針肯定是不夠的,所以我們需要再添加一個指針 —— prev,該指針指向某結點的直接前驅結點。

  1. /*雙向鏈表的結點結構體*/ 
  2. typedef struct _Node { 
  3.     int data; //數(shù)據(jù)域 
  4.     struct _Node *prev; //指向直接前驅結點的指針 
  5.     struct _Node *next; //指向直接后繼結點的指針 
  6. } Node; 

2.3. 空鏈表及初始化

雙向鏈表的空鏈表如圖所示:

 

雙向空鏈表

要初始化一個這樣的空鏈表,需要創(chuàng)造出頭結點,然后將兩個指針域置空即可:

  1. Node *create_node(int elem) 
  2.     Node *new = (Node *)malloc(sizeof(Node)); 
  3.     new->data = elem; 
  4.     new->prev = NULL
  5.     new->next = NULL
  6.     return new; 
  7.  
  8. void init(Node **p_head) 
  9.     //創(chuàng)建頭結點 
  10.     Node *head_node = create_node(0); 
  11.     //頭指針指向頭結點 
  12.     *p_head = head_node; 

2.4. 插入操作

這里只演示頭插法,過程如下:

雙向鏈表頭插法過程

代碼如下:

  1. /** 
  2.  * 頭插法,新結點為頭結點的直接后繼 
  3.  * p_head: 指向頭指針的指針 
  4.  * elem: 新結點的數(shù)據(jù) 
  5.  */ 
  6. void insert_at_head(Node **p_head, int elem) 
  7.     Node *new = create_node(elem); 
  8.     Node *head_node = *p_head; //頭結點 
  9.     if (head_node->next != NULL) { //不為空鏈表 
  10.         Node *first_node = head_node->next; //首結點:頭結點的下一個結點 
  11.         //首結點的prev指針指向new結點 
  12.         first_node->prev = new; 
  13.         //new結點的next指針指向首結點 
  14.         new->next = first_node; 
  15.     } 
  16.     //new結點的prev指針指向頭結點 
  17.     new->prev = head_node; 
  18.     //頭結點的next指針指向new結點 
  19.     head_node->next = new; 

2.5. 刪除操作

這里只演示頭刪法。下圖是將一個有兩個元素結點的雙向鏈表頭刪為空鏈表的過程:

雙向鏈表頭刪法過程

代碼如下:

  1. /** 
  2.  * 頭刪法 
  3.  * p_head: 指向頭指針的指針 
  4.  * elem: 指向保存變量的指針 
  5.  */ 
  6. void delete_from_head(Node **p_head, int *elem) 
  7.     Node *head_node = *p_head; //頭結點 
  8.     Node *first_node = head_node->next; //待刪除的首結點:頭結點的下一個結點 
  9.     if (head_node->next == NULL) { //判空 
  10.         printf("空鏈表,無元素可刪。\n"); 
  11.         return
  12.     } 
  13.     *elem = first_node->data; //保存數(shù)據(jù) 
  14.      
  15.     if (first_node->next != NULL) { 
  16.         first_node->next->prev = first_node->prev; 
  17.     } 
  18.     first_node->prev->next = first_node->next
  19.     free(first_node); 

2.6. 遍歷操作

有了 next 指針域,我們可以一路向后遍歷;有了 prev 指針域,我們可以一路向前遍歷。

這里不再展示代碼了。

3. 總結

了解了單向循環(huán)鏈表和雙向鏈表,就像拿搭積木一樣,我們還可以創(chuàng)造出來雙向循環(huán)鏈表。這里就不再演示了,讀者可以自行嘗試。只要你搞懂上面三種鏈表,這絕非難事。

以上就是鏈表的花樣玩法部分內(nèi)容,以后還會繼續(xù)更新。

參考資料

[1]GitHub: https://github.com/xingrenguanxue/Simple-DS-and-Easy-Algo

[2]Gitee: https://gitee.com/xingrenguanxue/Simple-DS-and-Easy-Algo

 

責任編輯:姜華 來源: 二十二畫程序員
相關推薦

2021-07-13 07:52:03

Python數(shù)據(jù)結構

2021-07-15 06:43:12

Python數(shù)據(jù)結構

2017-03-01 13:58:46

Python數(shù)據(jù)結構鏈表

2021-08-03 10:24:59

數(shù)據(jù)跳躍鏈表結構

2012-02-02 10:21:05

單鏈表nexthead

2021-05-12 14:09:35

鏈表數(shù)據(jù)結構線性結構

2021-12-21 08:19:29

數(shù)據(jù)結構算法鏈表相交

2021-01-06 08:03:00

JavaScript數(shù)據(jù)結構

2021-10-29 11:27:52

鏈表數(shù)據(jù)結構算法

2021-01-28 07:33:34

JavaScript鏈表數(shù)據(jù)

2021-03-10 08:42:19

Java數(shù)據(jù)結構算法

2021-03-11 08:53:20

Java數(shù)據(jù)結構算法

2023-10-06 20:21:28

Python鏈表

2020-10-28 10:10:03

Java單鏈表數(shù)據(jù)結構

2018-08-01 15:22:36

數(shù)據(jù)科學家數(shù)據(jù)科學分析

2016-11-10 08:44:45

數(shù)據(jù)挖掘分析

2020-03-27 14:29:30

數(shù)據(jù)結構

2021-05-10 15:05:56

鴻蒙HarmonyOS應用

2021-04-30 15:06:34

鴻蒙HarmonyOS應用

2021-01-21 08:23:29

鏈表單鏈表循環(huán)鏈表
點贊
收藏

51CTO技術棧公眾號

我不卡伦不卡影院| 成人日韩av| 91在线丨porny丨国产| 日本国产高清不卡| 老熟妇高潮一区二区三区| 亚洲精选av| 日韩欧美在线视频观看| 在线不卡日本| 无码国产精品96久久久久| 日韩国产精品久久| 欧美国产日韩免费| 欧美波霸videosex极品| 色播一区二区| 欧洲激情一区二区| 日韩视频在线视频| 日日夜夜精品一区| 97se亚洲国产综合自在线| 国产在线观看一区二区三区 | 免费精品国产| 日韩欧美视频在线| 黄色一级二级三级| 丰满诱人av在线播放| 欧美极品少妇xxxxⅹ高跟鞋| 国产精品久久久久久久久久直播 | 亚洲中文字幕无码av永久| 一级毛片视频在线观看| 99re热这里只有精品视频| 成人午夜高潮视频| 国产黄色免费视频| 亚洲国产国产亚洲一二三| xvideos亚洲人网站| 一本加勒比北条麻妃| 日本精品国产| 欧美精品久久天天躁| 国产成人亚洲精品无码h在线| 美女尤物在线视频| 中文字幕一区二区在线观看| 奇米视频888战线精品播放| 黄色av一区二区三区| 国产精品一区免费在线观看| 国产精品久久久久9999| 中文字幕精品无码一区二区| 亚洲高清av| 欧美激情一级精品国产| a在线视频播放观看免费观看| 欧洲乱码伦视频免费| 日韩精品视频免费| 国产xxxx视频| 91蝌蚪精品视频| 日韩欧美亚洲另类制服综合在线| 午夜啪啪小视频| 免费成人毛片| 欧美日韩精品一区二区在线播放 | 粉嫩蜜臀av国产精品网站| 91九色国产社区在线观看| 在线播放亚洲精品| 毛片av一区二区| 国产精品美乳一区二区免费 | 理论电影国产精品| 国产精品日韩久久久久| 中文字幕av久久爽| 久久精品99国产精品| 国产区精品在线观看| 亚洲天堂aaa| 奇米精品一区二区三区在线观看| 国产精品99免视看9| 波多野结衣理论片| 蜜桃av一区二区| 91日韩在线播放| www.五月婷| 成人免费视频一区二区| 国产视色精品亚洲一区二区| 天堂v在线观看| 久久只精品国产| 水蜜桃一区二区三区| 日韩子在线观看| 亚洲欧美激情插| 日韩精品在线视频免费观看| 嗯~啊~轻一点视频日本在线观看| 精品国产91久久久| 日本精品免费在线观看| jizzjizz少妇亚洲水多| 在线成人免费观看| 国产精九九网站漫画| 日本欧美高清| 一区二区三区美女xx视频| 国产又黄又粗又猛又爽的| 亚洲91视频| 97精品在线观看| 在线免费一区二区| 精品亚洲porn| 精品91免费| 国产免费av在线| 亚洲蜜臀av乱码久久精品蜜桃| 99er在线视频| 456成人影院在线观看| 91精品欧美福利在线观看| 亚洲欧美高清在线| 国产调教一区二区三区| 久久久精品视频成人| 国产精品7777777| 日本特黄久久久高潮| 岛国视频一区| 黄色软件在线观看| 亚洲在线中文字幕| 婷婷六月天在线| 国产精品久久久网站| 在线视频精品一| 国产精品theporn动漫| 蜜臀av一区二区在线免费观看| 97人人模人人爽人人少妇| 九色蝌蚪在线| 亚洲一区在线电影| 久久99999| 日本成人中文| 欧美国产乱视频| 亚洲无码精品在线观看| 97精品久久久久中文字幕 | 国产精品久久国产精品| 亚洲成a人v欧美综合天堂麻豆| 性感美女极品91精品| 999久久久精品视频| 久久不见久久见国语| 欧美激情18p| 国产又粗又大又爽| 久久久久99精品国产片| 霍思燕三级露全乳照| 成人亚洲精品| 日韩中文字幕av| 日本中文字幕在线| 99视频有精品| 岛国大片在线播放| 日本免费精品| 久久综合88中文色鬼| 亚洲精品国产精品国自产网站按摩| k8久久久一区二区三区| 一本色道久久88亚洲精品综合| 久久爱.com| 国产亚洲xxx| 日本高清不卡码| 91免费观看视频| 日本十八禁视频无遮挡| 加勒比中文字幕精品| 欧美精品videosex牲欧美| 国产一区二区三区黄片| 欧美激情一区在线观看| 成人黄色片视频| 免费一区二区| 国产91在线高潮白浆在线观看| 性xxxx搡xxxxx搡欧美| 精品久久久久久中文字幕一区奶水 | 亚洲欧美国产一本综合首页| 国产成人愉拍精品久久| av爱爱亚洲一区| 亚洲中文字幕无码专区| 欧美交a欧美精品喷水| 91国产视频在线| 婷婷国产在线| 欧美性猛交xxxx乱大交极品| 超碰97在线资源站| 新67194成人永久网站| 欧美日本国产精品| 国产在线|日韩| 色久欧美在线视频观看| 一道本在线视频| 136国产福利精品导航| www.色.com| 韩国欧美一区| 精品一区在线播放| 亚洲欧美电影| 日韩中文视频免费在线观看| 99热这里只有精品9| 一区二区三区四区精品在线视频| 亚洲成a人片在线www| 国产精品久久久一区二区| 免费在线观看91| 丁香久久综合| 欧美成在线观看| 少妇高潮久久久| 欧美专区在线观看一区| 国产男女猛烈无遮挡在线喷水| 国产精品一区二区91| 亚洲熟妇无码一区二区三区导航| 国产精品一区二区av日韩在线| 国产久一一精品| 欧美人与禽猛交乱配| 国产丝袜一区二区| 888奇米影视| 亚洲777理论| 日本猛少妇色xxxxx免费网站| 国产一区二区三区四区在线观看| 可以看毛片的网址| 成人vr资源| 国产日韩亚洲精品| 人人精品久久| 欧美一区二区.| 嫩草在线视频| 国产婷婷97碰碰久久人人蜜臀 | 警花观音坐莲激情销魂小说| 欧美日韩麻豆| 91人成网站www| 欧美一区久久久| 欧美夫妻性视频| 电影av在线| 亚洲成av人片在线观看香蕉| 中文字幕码精品视频网站| 亚洲成人一区二区| 99热99这里只有精品| 91丨porny丨蝌蚪视频| 乳色吐息在线观看| 日本成人中文字幕在线视频 | 欧美日韩国产精品一区二区三区| 久久久五月婷婷| av在线天堂网| 精品一区二区三区在线视频| 日韩视频第二页| 激情一区二区| 日本高清视频免费在线观看| 日韩精品二区| 热舞福利精品大尺度视频| 国产精品白丝一区二区三区| 国产精品一二三在线| 国产三区视频在线观看| 国产丝袜一区二区三区免费视频| 国产77777| 欧美久久久久久久久久| 日本高清www免费视频| 亚洲色图制服诱惑| 天天躁夜夜躁狠狠是什么心态| 99精品热视频| 国产又粗又猛又爽又黄| 美女视频网站黄色亚洲| 91专区在线观看| 欧美粗暴jizz性欧美20| 亚洲国产日韩欧美| 亚洲小说图片| 久久另类ts人妖一区二区| 97品白浆高清久久久久久| 91精品国产综合久久男男| 日韩一级视频| 国产精品久久久久久av| 亚洲黄色中文字幕| 欧美精品福利在线| yellow字幕网在线| 九九精品在线播放| 国产在线观看av| 欧美成人激情在线| 成人无遮挡免费网站视频在线观看| 亚洲欧美日韩一区二区在线| 国产综合在线播放| 亚洲国产成人精品久久| 精品人妻无码一区二区| 欧美一区二区三区公司| 亚洲国产成人精品一区二区三区| 欧美精品日韩精品| 97久久人国产精品婷婷 | 99久久久无码国产精品免费| 欧美三电影在线| 日韩国产亚洲欧美| 欧美日韩国产色站一区二区三区| 亚洲视屏在线观看| 欧美日韩视频在线第一区 | 免费高清在线观看电视| 中文字幕一区二区三区视频| 粉嫩精品久久99综合一区| 亚洲欧洲精品一区二区三区 | 欧美影院天天5g天天爽| 国产综合动作在线观看| 九九热hot精品视频在线播放| 蜜桃成人免费视频| 亚洲国产国产| 欧美一区二区三区四区夜夜大片| 欧美xxxx中国| 黄色网络在线观看| 欧美精品aa| www.好吊操| 视频在线在亚洲| 亚洲这里只有精品| 国产专区欧美精品| av网页在线观看| 久久精品免视看| 日本裸体美女视频| 亚洲电影第三页| 中文字幕视频网站| 欧美探花视频资源| 亚洲精品一区二区口爆| 日韩的一区二区| 福利在线观看| 欧美激情小视频| sese综合| 成人免费淫片视频软件| 欧美黑白配在线| 日本高清视频一区二区三区| 久久理论电影| 无码人妻精品一区二区三区99v| 99视频一区| 亚洲老女人av| 国产高清在线精品| 精品一区二区三区蜜桃在线| 亚洲人成在线观看一区二区| 国产第100页| 欧美精品第1页| 五月婷婷丁香花| 日韩一区二区三区xxxx| 少妇视频在线观看| 成人av在线天堂| 一本久久青青| 精品久久久无码人妻字幂| 欧美一区=区| 免费欧美一级片| 久久伊人蜜桃av一区二区| 手机av在线不卡| 夜夜精品视频一区二区| 国语对白永久免费| 日韩限制级电影在线观看| 四虎影视2018在线播放alocalhost| 亚洲嫩模很污视频| 丝袜在线观看| 91久久中文字幕| 五月激激激综合网色播| 国产日韩第一页| 寂寞少妇一区二区三区| 中文字幕狠狠干| 亚洲综合激情网| www.国产.com| www.国产一区| 综合在线影院| 国产有色视频色综合| 综合激情一区| 波多野结衣在线免费观看| 国产欧美日韩三区| 久久免费激情视频| 亚洲成avwww人| gogogogo高清视频在线| 国产精品扒开腿爽爽爽视频| 国产a久久精品一区二区三区| 波多野结衣av一区二区全免费观看 | 在线观看中文字幕2021| 亚洲精品视频在线播放| av丝袜在线| 成人免费视频网站| 欧美日韩三级电影在线| 亚洲精品mv在线观看| 中文乱码免费一区二区| 中文字幕乱码人妻无码久久 | 理论片午午伦夜理片在线播放| 国产精品扒开腿做| 亚洲欧美tv| 黄色免费福利视频| 久久综合999| 91精品国产高清一区二区三密臀| 亚洲国产精品女人久久久| 美女网站在线看| 国产乱码精品一区二区三区卡| 亚洲综合色网| 天天躁日日躁狠狠躁av麻豆男男| 亚洲一区二区五区| а√中文在线资源库| 久久成人免费视频| 欧美日韩中出| 久色视频在线播放| 97久久久精品综合88久久| 日韩不卡视频在线| 一个色综合导航| 免费成人毛片| 亚洲区成人777777精品| 国产一区二区三区四| 免费在线看黄网址| 日韩精品日韩在线观看| 色豆豆成人网| 亚洲激情电影在线| 国产精品综合一区二区| 欧美性猛交xxxxx少妇| 精品国产百合女同互慰| 2020av在线| 奇米精品在线| 国产91精品一区二区麻豆亚洲| 久久免费播放视频| 亚洲精美色品网站| 国产成人福利夜色影视| 黄色网络在线观看| 久久久久久久综合| 中文字幕在线观看精品| 久久伊人91精品综合网站| 久久午夜影院| 国产精品69页| 亚洲国产精品黑人久久久| 亚洲成人中文字幕在线| 欧美一级视频免费在线观看| 99久久婷婷| www.美色吧.com| 欧美香蕉大胸在线视频观看| 老司机精品影院| 国产欧美一区二区三区不卡高清| 在线亚洲自拍| 激情五月激情综合| 精品国产91乱码一区二区三区 | 国精产品一区一区三区免费视频| 在线国产电影不卡| 久草免费在线视频|