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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

链表之CIRCLEQ

發(fā)布時間:2025/3/15 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 链表之CIRCLEQ 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

    • 頭文件
    • 例子
    • 代碼分析
      • CIRCLEQ_ENTRY 和 CIRCLEQ_HEAD
      • CIRCLEQ_HEAD_INITIALIZER
      • CIRCLEQ_FIRST 和 CIRCLEQ_LAST
      • CIRCLEQ_PREV 和 CIRCLEQ_NEXT
      • CIRCLEQ_INIT
      • CIRCLEQ_EMPTY
      • CIRCLEQ_INSERT_TAIL
      • CIRCLEQ_INSERT_HEAD
      • CIRCLEQ_INSERT_AFTER
      • CIRCLEQ_INSERT_BEFORE
      • CIRCLEQ_FOREACH
      • CIRCLEQ_FOREACH_REVERSE
      • CIRCLEQ_REMOVE

頭文件

頭文件來自我最近看的項(xiàng)目:apache-mynewt-core-1.9.0\sys\sys\include\sys\queue.h

僅截取部分。

/** Circular queue declarations.*/ #define CIRCLEQ_HEAD(name, type) \ struct name { \struct type *cqh_first; /* first element */ \struct type *cqh_last; /* last element */ \ }#define CIRCLEQ_HEAD_INITIALIZER(head) \{ (void *)&(head), (void *)&(head) }#define CIRCLEQ_ENTRY(type) \ struct { \struct type *cqe_next; /* next element */ \struct type *cqe_prev; /* previous element */ \ }/** Circular queue functions.*/ #define CIRCLEQ_EMPTY(head) ((head)->cqh_first == (void *)(head))#define CIRCLEQ_FIRST(head) ((head)->cqh_first)#define CIRCLEQ_FOREACH(var, head, field) \for ((var) = CIRCLEQ_FIRST((head)); \(var) != (void *)(head) || ((var) = NULL); \(var) = CIRCLEQ_NEXT((var), field))#define CIRCLEQ_FOREACH_REVERSE(var, head, field) \for ((var) = CIRCLEQ_LAST((head)); \(var) != (void *)(head) || ((var) = NULL); \(var) = CIRCLEQ_PREV((var), field))#define CIRCLEQ_INIT(head) do { \CIRCLEQ_FIRST((head)) = (void *)(head); \CIRCLEQ_LAST((head)) = (void *)(head); \ } while (0)#define CIRCLEQ_INSERT_AFTER(head, listelm, elm, field) do { \CIRCLEQ_NEXT((elm), field) = CIRCLEQ_NEXT((listelm), field); \CIRCLEQ_PREV((elm), field) = (listelm); \if (CIRCLEQ_NEXT((listelm), field) == (void *)(head)) \CIRCLEQ_LAST((head)) = (elm); \else \CIRCLEQ_PREV(CIRCLEQ_NEXT((listelm), field), field) = (elm);\CIRCLEQ_NEXT((listelm), field) = (elm); \ } while (0)#define CIRCLEQ_INSERT_BEFORE(head, listelm, elm, field) do { \CIRCLEQ_NEXT((elm), field) = (listelm); \CIRCLEQ_PREV((elm), field) = CIRCLEQ_PREV((listelm), field); \if (CIRCLEQ_PREV((listelm), field) == (void *)(head)) \CIRCLEQ_FIRST((head)) = (elm); \else \CIRCLEQ_NEXT(CIRCLEQ_PREV((listelm), field), field) = (elm);\CIRCLEQ_PREV((listelm), field) = (elm); \ } while (0)#define CIRCLEQ_INSERT_HEAD(head, elm, field) do { \CIRCLEQ_NEXT((elm), field) = CIRCLEQ_FIRST((head)); \CIRCLEQ_PREV((elm), field) = (void *)(head); \if (CIRCLEQ_LAST((head)) == (void *)(head)) \CIRCLEQ_LAST((head)) = (elm); \else \CIRCLEQ_PREV(CIRCLEQ_FIRST((head)), field) = (elm); \CIRCLEQ_FIRST((head)) = (elm); \ } while (0)#define CIRCLEQ_INSERT_TAIL(head, elm, field) do { \CIRCLEQ_NEXT((elm), field) = (void *)(head); \CIRCLEQ_PREV((elm), field) = CIRCLEQ_LAST((head)); \if (CIRCLEQ_FIRST((head)) == (void *)(head)) \CIRCLEQ_FIRST((head)) = (elm); \else \CIRCLEQ_NEXT(CIRCLEQ_LAST((head)), field) = (elm); \CIRCLEQ_LAST((head)) = (elm); \ } while (0)#define CIRCLEQ_LAST(head) ((head)->cqh_last)#define CIRCLEQ_NEXT(elm,field) ((elm)->field.cqe_next)#define CIRCLEQ_PREV(elm,field) ((elm)->field.cqe_prev)#define CIRCLEQ_REMOVE(head, elm, field) do { \if (CIRCLEQ_NEXT((elm), field) == (void *)(head)) \CIRCLEQ_LAST((head)) = CIRCLEQ_PREV((elm), field); \else \CIRCLEQ_PREV(CIRCLEQ_NEXT((elm), field), field) = \CIRCLEQ_PREV((elm), field); \if (CIRCLEQ_PREV((elm), field) == (void *)(head)) \CIRCLEQ_FIRST((head)) = CIRCLEQ_NEXT((elm), field); \else \CIRCLEQ_NEXT(CIRCLEQ_PREV((elm), field), field) = \CIRCLEQ_NEXT((elm), field); \ } while (0)

例子

#include <stddef.h> #include <stdio.h> #include <stdlib.h> #include "bsd_queue.h" // 就是我上面貼的代碼struct entry {int data;CIRCLEQ_ENTRY(entry) entries; /* Queue */ };CIRCLEQ_HEAD(circlehead, entry);int main(void) {struct entry *n1, *n2, *n3, *np;struct circlehead head; /* Queue head */int i;CIRCLEQ_INIT(&head); /* Initialize the queue */n1 = malloc(sizeof(struct entry)); /* Insert at the head */CIRCLEQ_INSERT_HEAD(&head, n1, entries);n1 = malloc(sizeof(struct entry)); /* Insert at the tail */CIRCLEQ_INSERT_TAIL(&head, n1, entries);n2 = malloc(sizeof(struct entry)); /* Insert after */CIRCLEQ_INSERT_AFTER(&head, n1, n2, entries);n3 = malloc(sizeof(struct entry)); /* Insert before */CIRCLEQ_INSERT_BEFORE(&head, n2, n3, entries);CIRCLEQ_REMOVE(&head, n2, entries); /* Deletion */free(n2);/* Forward traversal */i = 0;CIRCLEQ_FOREACH(np, &head, entries)np->data = i++;/* Reverse traversal */CIRCLEQ_FOREACH_REVERSE(np, &head, entries)printf("%i\n", np->data);/* Queue deletion */n1 = CIRCLEQ_FIRST(&head);while (n1 != (void *)&head) {n2 = CIRCLEQ_NEXT(n1, entries);free(n1);n1 = n2;}CIRCLEQ_INIT(&head);exit(EXIT_SUCCESS); }

代碼分析

我們一點(diǎn)一點(diǎn)看上面的例子。

先來一張我自己繪制的示意圖。紅色表示我覺得不太“正常”的地方,指針的類型不匹配,需要強(qiáng)制轉(zhuǎn)換。

CIRCLEQ_ENTRY 和 CIRCLEQ_HEAD

struct entry {int data;CIRCLEQ_ENTRY(entry) entries; /* Queue */ };CIRCLEQ_HEAD(circlehead, entry);

宏展開是:

struct entry {int data;struct { struct entry *cqe_next; struct entry *cqe_prev; } entries; }; struct circlehead { struct entry *cqh_first; struct entry *cqh_last; };

和其他鏈表不同,這里沒有用二級指針,cqe_prev 和 cqh_last 都是 struct entry * 類型。(為什么呢)

我前面寫的文章都是研究宏展開后的代碼,這次我們換一個思路,直接看宏的定義

CIRCLEQ_HEAD_INITIALIZER

#define CIRCLEQ_HEAD_INITIALIZER(head) \{ (void *)&(head), (void *)&(head) }

初始化一個鏈表后,表頭的兩個指針都指向自己。

CIRCLEQ_FIRST 和 CIRCLEQ_LAST

#define CIRCLEQ_FIRST(head) ((head)->cqh_first) #define CIRCLEQ_LAST(head) ((head)->cqh_last)

這兩個很好理解,不解釋了。

CIRCLEQ_PREV 和 CIRCLEQ_NEXT

#define CIRCLEQ_PREV(elm,field) ((elm)->field.cqe_prev) #define CIRCLEQ_NEXT(elm,field) ((elm)->field.cqe_next)

field 就是最開始定義的 entries

CIRCLEQ_INIT

#define CIRCLEQ_INIT(head) do { \CIRCLEQ_FIRST((head)) = (void *)(head); \CIRCLEQ_LAST((head)) = (void *)(head); \ } while (0)

初始化一個鏈表后,表頭的兩個指針都指向自己。如下圖

CIRCLEQ_EMPTY

#define CIRCLEQ_EMPTY(head) ((head)->cqh_first == (void *)(head))

CIRCLEQ_INSERT_TAIL

#define CIRCLEQ_INSERT_TAIL(head, elm, field) do { \CIRCLEQ_NEXT((elm), field) = (void *)(head); \CIRCLEQ_PREV((elm), field) = CIRCLEQ_LAST((head)); \if (CIRCLEQ_FIRST((head)) == (void *)(head)) \CIRCLEQ_FIRST((head)) = (elm); \else \CIRCLEQ_NEXT(CIRCLEQ_LAST((head)), field) = (elm); \CIRCLEQ_LAST((head)) = (elm); \ } while (0)

把 elm 插入到鏈表的尾部,都需要改變哪些指針呢?

  • elm 的 field.cqe_next,因?yàn)樗亲詈笠粋€,所以它應(yīng)該等于 (void *)(head)
  • elm 的 field.cqe_prev
  • 插入后,elm 前面的那個節(jié)點(diǎn)的 field.cqe_next(如果前面的節(jié)點(diǎn)是表頭,那就修改CIRCLEQ_FIRST(head) )
  • 修改 (head)->cqh_last 指向 elm
  • 代碼第 2、3 行分別解決了 1、2

    代碼第 4、5 行解決了 3 的括號中的情況

    第 7 行解決了 3,elm 前面的那個節(jié)點(diǎn)就是原來最后的節(jié)點(diǎn),CIRCLEQ_LAST(head),它的 cqe_next 就是 CIRCLEQ_NEXT(CIRCLEQ_LAST((head)), field)

    第 8 行解決了 4

    CIRCLEQ_INSERT_HEAD

    #define CIRCLEQ_INSERT_HEAD(head, elm, field) do { \CIRCLEQ_NEXT((elm), field) = CIRCLEQ_FIRST((head)); \CIRCLEQ_PREV((elm), field) = (void *)(head); \if (CIRCLEQ_LAST((head)) == (void *)(head)) \CIRCLEQ_LAST((head)) = (elm); \else \CIRCLEQ_PREV(CIRCLEQ_FIRST((head)), field) = (elm); \CIRCLEQ_FIRST((head)) = (elm); \ } while (0)

    把 elm 插入到鏈表的頭部,都需要改變哪些指針呢?

  • elm 的 field.cqe_next
  • elm 的 field.cqe_prev,它應(yīng)該等于 (void *)(head)
  • (head)->cqh_first
  • 插入后,elm 后面的那個節(jié)點(diǎn)的 field.cqe_prev(如果插入 elm 前鏈表為空,那就修改CIRCLEQ_LAST(head) )
  • 第 2 行解決了 1

    第 3 行解決了 2

    第 4-5 行解決了 4 的括號中的情況

    第 7 行解決了 4

    第 8 行解決了 3

    代碼 4-7 行說明,因?yàn)闆]有用二級指針,所以頭插的時候需要分情況考慮。但是不用二級指針也有好處,就是代碼更好理解。

    CIRCLEQ_INSERT_AFTER

    #define CIRCLEQ_INSERT_AFTER(head, listelm, elm, field) do { \CIRCLEQ_NEXT((elm), field) = CIRCLEQ_NEXT((listelm), field); \CIRCLEQ_PREV((elm), field) = (listelm); \if (CIRCLEQ_NEXT((listelm), field) == (void *)(head)) \CIRCLEQ_LAST((head)) = (elm); \else \CIRCLEQ_PREV(CIRCLEQ_NEXT((listelm), field), field) = (elm);\CIRCLEQ_NEXT((listelm), field) = (elm); \ } while (0)

    要把 elm 插入到 listelm 元素的后面,要修改哪些指針呢?

  • elm 的 field.cqe_next
  • elm 的 field.cqe_prev
  • listelm 的 field.cqe_next
  • 插入之前,listelm 后面的那個節(jié)點(diǎn)的 field.cqe_prev(如果 listelm 后面沒有節(jié)點(diǎn)了,就修改 CIRCLEQ_LAST(head))
  • 2-3 行分別解決了 1、2

    4-5 行解決了 4 括號里的情況

    第 7 行解決了 4

    第 8 行解決了 3

    CIRCLEQ_INSERT_BEFORE

    #define CIRCLEQ_INSERT_BEFORE(head, listelm, elm, field) do { \CIRCLEQ_NEXT((elm), field) = (listelm); \CIRCLEQ_PREV((elm), field) = CIRCLEQ_PREV((listelm), field); \if (CIRCLEQ_PREV((listelm), field) == (void *)(head)) \CIRCLEQ_FIRST((head)) = (elm); \else \CIRCLEQ_NEXT(CIRCLEQ_PREV((listelm), field), field) = (elm);\CIRCLEQ_PREV((listelm), field) = (elm); \ } while (0)

    要把 elm 插入到 listelm 元素的前面,要修改哪些指針呢?

  • elm 的 field.cqe_next
  • elm 的 field.cqe_prev
  • listelm 的 field.cqe_prev
  • 插入之前,listelm 前面的那個節(jié)點(diǎn)的 field.cqe_next(如果 listelm 前面是表頭,就修改 CIRCLEQ_FIRST(head))
  • 2-3 行分別解決了 1、2

    4-5 行解決了 4 括號里的情況

    第 7 行解決了 4

    第 8 行解決了 3

    CIRCLEQ_FOREACH

    #define CIRCLEQ_FOREACH(var, head, field) \for ((var) = CIRCLEQ_FIRST((head)); \(var) != (void *)(head) || ((var) = NULL); \(var) = CIRCLEQ_NEXT((var), field))

    順序遍歷,只要 (var) != (void *)(head) 就會往下進(jìn)行,如果等于 head,根據(jù) || 運(yùn)算符的求值規(guī)則,會執(zhí)行 (var) = NULL,這個表達(dá)式的結(jié)果為 false,于是終止 for 循環(huán)

    CIRCLEQ_FOREACH_REVERSE

    #define CIRCLEQ_FOREACH_REVERSE(var, head, field) \for ((var) = CIRCLEQ_LAST((head)); \(var) != (void *)(head) || ((var) = NULL); \(var) = CIRCLEQ_PREV((var), field))

    逆序遍歷,和順序遍歷類似,不解釋了。

    CIRCLEQ_REMOVE

    #define CIRCLEQ_REMOVE(head, elm, field) do { \if (CIRCLEQ_NEXT((elm), field) == (void *)(head)) \CIRCLEQ_LAST((head)) = CIRCLEQ_PREV((elm), field); \else \CIRCLEQ_PREV(CIRCLEQ_NEXT((elm), field), field) = \CIRCLEQ_PREV((elm), field); \if (CIRCLEQ_PREV((elm), field) == (void *)(head)) \CIRCLEQ_FIRST((head)) = CIRCLEQ_NEXT((elm), field); \else \CIRCLEQ_NEXT(CIRCLEQ_PREV((elm), field), field) = \CIRCLEQ_NEXT((elm), field); \ } while (0)

    移除節(jié)點(diǎn) elm,需要修改那些指針呢?

  • elm 前面那個節(jié)點(diǎn)的 field.cqe_next

  • elm 后面那個節(jié)點(diǎn)的 field.cqe_prev

  • 對于 1,如果 elm 前面的節(jié)點(diǎn)是 head,那就需要修改 CIRCLEQ_FIRST(head)

  • 對于 2, 如果 elm 后面沒有節(jié)點(diǎn)了,那就需要修改 CIRCLEQ_LAST(head)

  • 代碼 2-3 行解決了 4

    5-6 行解決了 2

    代碼 7-8 行解決了 3

    10-11 解決了 1

    【end】

    總結(jié)

    以上是生活随笔為你收集整理的链表之CIRCLEQ的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

    婷婷丁香社区 | 视频在线99re| 精品国产一区二区三区在线 | 97在线观看免费高清完整版在线观看 | 99久久精品国产一区二区三区 | 手机看片福利 | 伊人天堂久久 | 在线观看日韩专区 | 99精品视频免费看 | 中日韩欧美精彩视频 | 亚洲精品成人av在线 | 成年人在线免费看片 | 97碰碰视频 | 国产群p | 992tv在线| 免费观看性生交 | 国产精品午夜8888 | 五月综合 | 夜夜嗨av色一区二区不卡 | 欧美精品中文字幕亚洲专区 | 国产超碰在线观看 | 亚洲午夜av久久乱码 | 欧美ⅹxxxxxx | 日韩专区在线播放 | 黄色在线看网站 | 精品久久久久久久久久久久久 | 久久草在线免费 | 欧美在线观看视频 | av黄色亚洲 | 69xxxx欧美| www.99热精品 | 亚洲码国产日韩欧美高潮在线播放 | 国产精品第三页 | 国产精品短视频 | 久久免费视频在线观看 | 日韩高清免费在线 | 亚洲精品影视 | 天堂av影院 | 久99久中文字幕在线 | 国产福利91精品一区 | 日韩午夜网站 | 国产破处精品 | 免费日韩一区二区三区 | 亚洲男人天堂2018 | 国产精品24小时在线观看 | 99久e精品热线免费 99国产精品久久久久久久久久 | www日韩高清| 99操视频| 久久这里只有精品9 | 97超碰国产精品女人人人爽 | 天天干夜夜 | 99久久夜色精品国产亚洲 | 视频国产精品 | 成人在线播放网站 | 国产一区二区视频在线 | 久久y| 亚洲精品在线视频观看 | a v在线视频 | 日韩电影一区二区三区在线观看 | 国产午夜精品理论片在线 | 超碰人人乐 | 欧美analxxxx | 久久久久久久久毛片精品 | 国产精品高潮呻吟久久av无 | 欧美国产日韩一区二区三区 | 天天干天天操天天射 | 日日干av| 国产视频丨精品|在线观看 国产精品久久久久久久久久久久午夜 | 日韩在线短视频 | 国产亚洲视频系列 | 日本激情动作片免费看 | av色综合网| 在线观看深夜视频 | 精品国产免费一区二区三区五区 | 97操操操| 精品在线观看国产 | 久久午夜色播影院免费高清 | 国产免费三级在线观看 | 亚洲人成在线观看 | 人人干人人模 | 国产视频在线一区二区 | 国产精品永久免费 | 国产男男gay做爰 | 福利视频入口 | 午夜久久影院 | 欧美日韩一区二区三区在线观看视频 | 国产黄在线看 | 日日婷婷夜日日天干 | 国产91勾搭技师精品 | 久久人人添人人爽添人人88v | 丁香五月缴情综合网 | 国产精品亚洲人在线观看 | 五月天色丁香 | 在线观看色网站 | 国产69精品久久app免费版 | 丁香5月婷婷久久 | 九九三级毛片 | 免费涩涩网站 | 国产在线观看中文字幕 | 麻豆视频一区 | 久草资源免费 | 特级西西444www大精品视频免费看 | 亚洲天堂网站视频 | 国产一区二区三区久久久 | 在线一二三四区 | 日本99干网 | 欧美激情另类文学 | 日韩高清在线一区 | 国产精品永久免费观看 | 久久99久久99精品免视看婷婷 | 小草av在线播放 | 黄在线免费看 | 国产精彩视频一区二区 | 免费91在线 | 久久久久久久久久久成人 | 国产无吗一区二区三区在线欢 | 日韩在线观看a | 狠狠久久伊人 | 精久久久久 | av免费观看在线 | 久久精品xxx | 日本黄色a级大片 | 5月丁香婷婷综合 | 很黄很黄的网站免费的 | 中文字幕国内精品 | 日日夜夜免费精品视频 | 亚洲精品免费观看 | 日韩理论电影在线观看 | 丁香资源影视免费观看 | 国产精品久久久久久久久久不蜜月 | 在线黄av | 日韩伦理一区二区三区av在线 | 久久99精品波多结衣一区 | 日韩中文字幕免费在线观看 | 玖玖视频网| 欧美不卡在线 | 99视频国产精品免费观看 | 国产美女精品视频免费观看 | 亚洲国产网址 | 91亚洲精品乱码久久久久久蜜桃 | 国产自制av | 在线视频中文字幕一区 | 国产成人精品午夜在线播放 | 国产成人a亚洲精品 | 91激情视频在线 | 999久久久久久久久 69av视频在线观看 | 麻豆视频免费在线观看 | 美女国产免费 | 国产精品久久久久久久久久了 | 国产一区免费在线观看 | 亚洲综合狠狠干 | 蜜桃av久久久亚洲精品 | 91精品久久久久久久久久入口 | 国产丝袜在线 | 91夜夜夜| 中文字幕av在线不卡 | 五月婷婷在线播放 | 国产一区免费看 | 伊人春色电影网 | 国产在线观看你懂得 | 色网站在线观看 | 国产自产在线视频 | 在线精品视频在线观看高清 | av免费看在线 | 区一区二区三区中文字幕 | 91在线成人 | 免费91麻豆精品国产自产在线观看 | 在线亚洲播放 | 在线观看国产日韩欧美 | 中文字幕视频观看 | 国产精品一区二区三区在线播放 | 永久免费av在线播放 | 亚洲欧美日韩中文在线 | 91亚洲精品久久久蜜桃 | 久久伦理电影网 | 国产三级香港三韩国三级 | 免费黄色a网站 | 国产一区高清在线观看 | 97超碰中文字幕 | 亚洲高清视频在线 | 青草草在线视频 | 国产精品99视频 | 国产午夜精品一区二区三区四区 | 亚洲资源 | 国产不卡视频 | 久久久国产精品亚洲一区 | 婷婷六月色 | 国产特级毛片aaaaaa高清 | 欧美人交a欧美精品 | 精品国内自产拍在线观看视频 | 五月色婷 | 午夜久久久影院 | 国产一区二区在线视频观看 | 久久精品一二区 | 国产精品久久一 | 日韩精品久久久久久久电影99爱 | 国产精品久久久久亚洲影视 | 五月天伊人网 | 久久亚洲影院 | 国产精品成人一区二区三区吃奶 | 久久国产精品99久久久久久进口 | 91在线你懂的 | 久久久久久久网 | 天天插天天色 | 国产精品嫩草55av | 狠狠操导航 | 东方av免费在线观看 | 在线观看免费av片 | 国产午夜精品一区二区三区嫩草 | 日本三级大片 | 美女网站免费福利视频 | 欧美在线一二 | 中日韩在线 | 成年人免费在线观看网站 | 亚洲综合婷婷 | 97精品国产91久久久久久 | 国产免费av一区二区三区 | 在线国产中文字幕 | 亚洲精品视频大全 | 精品一区二区三区四区在线 | 天天综合网国产 | 亚洲黄色小说网 | 久热免费在线观看 | 日韩av看片 | 99久久er热在这里只有精品66 | 日韩专区av | 人人超碰在线 | 99久久国产免费,99久久国产免费大片 | 亚洲成av人片一区二区梦乃 | 黄色av电影免费观看 | 色婷五月 | 午夜精品一区二区三区在线观看 | 久久一区二区三区四区 | 日韩av中文 | 中文字幕视频播放 | 久久精品系列 | 中文字幕免费一区二区 | 久久综合久久综合久久 | 在线黄网站 | 五月综合网站 | 99热手机在线 | 中文字幕日韩精品有码视频 | 色欲综合视频天天天 | 欧产日产国产69 | 在线观看色网站 | 福利久久| 在线观看中文字幕2021 | av高清影院 | www.天天射.com| 亚洲精品国产精品国自产观看浪潮 | 人人爽人人爽人人片av免 | 精品国产一区二区在线 | 精品毛片在线 | 波多野结衣视频一区二区 | 绯色av一区 | 99久久精品国产一区二区成人 | 欧美精品乱码久久久久 | 中日韩男男gay无套 日韩精品一区二区三区高清免费 | 亚洲播播| 久久高清免费观看 | 99精品一区二区三区 | 国产一区二区在线视频观看 | 国产精品黑丝在线观看 | 日韩影视大全 | 色综合天天视频在线观看 | 成人av中文字幕 | 在线观看国产www | 成年免费在线视频 | 国产电影一区二区三区四区 | ,午夜性刺激免费看视频 | 日韩在线在线 | 色视频在线观看免费 | 国产精品18久久久久久首页狼 | 97成人免费| 国产一级免费视频 | 色综合天天综合在线视频 | 日韩精品无码一区二区三区 | 欧美日韩国产综合网 | 黄色动态图xx | 日韩欧美电影在线观看 | 最近日本字幕mv免费观看在线 | 久久精品免费观看 | 97视频资源 | 中文字幕在线看视频国产中文版 | 岛国片在线 | 91麻豆精品国产91久久久无需广告 | 久久精品久久久久久久 | 999久久国精品免费观看网站 | 欧美日韩国产在线精品 | 懂色av懂色av粉嫩av分享吧 | 亚洲伊人成综合网 | 91三级在线观看 | 久久久99精品免费观看乱色 | 亚洲欧美国产精品18p | 色婷婷av一区 | 国产高清在线看 | 久久免费视频在线观看6 | 九九色网| 天天射日 | 国产成人精品av在线 | 天天综合91 | 中文区中文字幕免费看 | 麻豆传媒视频在线播放 | 日韩专区一区二区 | 欧美一二三区在线观看 | 久久久久免费精品国产 | 亚洲欧美成aⅴ人在线观看 四虎在线观看 | 亚a在线| 国产成人av综合色 | 国产原创在线视频 | 成人教育av | 操夜夜操 | 在线观看国产成人av片 | 成年人在线电影 | 激情片av| 日批视频在线播放 | 欧美在线观看视频免费 | 在线观看免费成人 | 91大神精品视频在线观看 | 五月丁香 | 天天射天天操天天干 | 亚在线播放中文视频 | 天堂久久电影网 | 亚洲精品午夜久久久久久久久久久 | 亚洲欧美偷拍另类 | 人人爽人人舔 | 日韩精品免费在线 | 9ⅰ精品久久久久久久久中文字幕 | 亚洲成人国产精品 | 久久久国产在线视频 | 一区二区不卡在线观看 | 18久久久 | 成人免费一区二区三区在线观看 | 久久久久国产成人精品亚洲午夜 | 二区中文字幕 | 久久久久久久久久免费视频 | 在线观看一区 | 超碰av在线| 精品久久久久久久久中文字幕 | 伊人手机在线 | 最近中文字幕免费av | 韩日精品视频 | 午夜精品视频福利 | 久久伊人婷婷 | 日韩xxxbbb| 人人澡人人爱 | 麻豆免费视频观看 | 国产一区欧美二区 | 日韩在线观看免费 | 欧美日韩国产一区 | 丁香狠狠 | 国产成人亚洲精品自产在线 | 日韩色中色 | 狠狠做六月爱婷婷综合aⅴ 日本高清免费中文字幕 | aaa毛片视频 | 嫩草91影院| 色婷久久| 国产成人综合精品 | 亚洲精品午夜久久久久久久 | 波多野结依在线观看 | 在线观看亚洲免费视频 | 日本在线视频一区二区三区 | 黄色成年片 | 亚洲黄色成人网 | 91麻豆文化传媒在线观看 | 国产成人精品久久亚洲高清不卡 | 日韩欧美专区 | 在线观看成人福利 | 成年人电影免费看 | 日本午夜免费福利视频 | 99一区二区三区 | 麻豆国产精品一区二区三区 | 在线 你懂 | 亚洲精品在线视频播放 | 久久成人国产精品 | 国产偷v国产偷∨精品视频 在线草 | 99麻豆久久久国产精品免费 | 玖玖玖在线 | 日韩av在线免费播放 | 又黄又爽又刺激的视频 | 亚洲综合视频在线播放 | 国产精品一区二区在线播放 | 久久国产精品视频观看 | 国产中的精品av小宝探花 | 偷拍视频一区 | 国产亚洲激情视频在线 | 天堂网中文在线 | 亚洲精品66 | a午夜电影| 一区二区三区四区精品视频 | 国产高清不卡一区二区三区 | 综合色在线观看 | 久久久久久久久久久免费视频 | 视频一区在线播放 | 日韩午夜在线播放 | 成人啪啪18免费游戏链接 | 久久精品一区二区三区国产主播 | 中文字幕亚洲欧美日韩2019 | 免费看片黄色 | 色综合天天狠天天透天天伊人 | 日日夜夜中文字幕 | 国产一级不卡毛片 | 六月婷色| 99热精品国产一区二区在线观看 | 久久免费国产电影 | 国产精品成人免费精品自在线观看 | 成人小视频免费在线观看 | 97品白浆高清久久久久久 | 久久人人添人人爽添人人88v | 中国一级片在线观看 | 成人影视免费看 | 手机av看片 | 精品高清美女精品国产区 | 黄色免费观看视频 | 亚洲永久精品在线 | www.黄色| 天天干天天操天天爱 | 国产精品免费看久久久8精臀av | 久久视频在线观看免费 | 麻豆91精品视频 | 婷婷久久一区 | 色之综合网 | 国产精品久久久久久高潮 | 国产精品久久久久久久免费大片 | 福利一区视频 | 国产午夜视频在线观看 | 粉嫩av一区二区三区四区在线观看 | av在线播放免费 | www.天天综合 | 综合婷婷 | 免费婷婷 | 激情综合网五月激情 | 欧美日韩性生活 | www.夜夜爽| 人人干97| 超碰97人人干| 亚洲精品9 | 日本在线视频一区二区三区 | 99九九免费视频 | 亚洲电影av在线 | av资源网在线播放 | 成人在线观看免费视频 | 婷婷av电影 | 成人av免费| 97超视频 | 国产精品久久久精品 | 成人av中文字幕 | 亚洲va欧美va国产va黑人 | 国内精品久久久久久久影视麻豆 | 91片黄在线观 | 欧美日韩69 | 91久久国产露脸精品国产闺蜜 | 国产精品毛片久久久久久久 | 欧美日韩精品在线 | 欧美精品三级在线观看 | 日韩亚洲欧美中文字幕 | 免费网址你懂的 | 婷婷六月丁香激情 | 婷婷性综合 | 懂色av一区二区三区蜜臀 | 伊人五月在线 | 国产精品毛片一区二区 | 99精品久久久 | 国产精品美女久久久久久久久久久 | 在线观看国产麻豆 | 国产美女精品在线 | 国产精品色婷婷 | 碰超在线 | 最近中文字幕免费av | 亚洲四虎 | 亚洲日韩精品欧美一区二区 | 日本在线成人 | 欧美久久99 | 婷婷丁香社区 | 日本午夜免费福利视频 | 久久国语露脸国产精品电影 | 亚洲精品色视频 | 亚洲精品美女免费 | 在线av资源 | 日韩欧美综合在线视频 | 久久电影日韩 | 中文字幕在线免费观看视频 | 国产乱老熟视频网88av | 高潮久久久久久 | 黄色三级视频片 | 天天天干天天天操 | 在线免费观看黄色 | 成年人黄色大片在线 | 综合视频在线 | 最新av网站在线观看 | 91九色视频在线观看 | 日韩成人精品一区二区三区 | 久久高清免费观看 | 成人av一区二区兰花在线播放 | 九九九在线 | 视频在线观看91 | 玖玖爱在线观看 | 69精品| 日韩丝袜 | 国产高清在线不卡 | 午夜精品久久久久久久久久 | 亚洲狠狠干 | 亚洲成 人精品 | 国产亚洲观看 | 在线观看福利网站 | av免费在线免费观看 | 色婷婷一区| 91精品中文字幕 | 狠狠网| 狠狠色丁香婷婷综合欧美 | 国产亚洲一区二区三区 | 亚洲三级毛片 | 中文字幕色播 | 人人插人人射 | 亚洲国产视频a | 99精品美女 | 在线中文日韩 | 国内精品久久久久久久影视简单 | 中文字幕黄色网址 | 精品国产一区二区三区久久久久久 | 国产精品高清在线 | 亚洲精品自在在线观看 | 久久看视频 | 在线看日韩av | 亚洲男男gⅴgay双龙 | 久草免费福利在线观看 | 久久精品站 | 黄色小说18 | 人人澡人 | 色婷婷色 | 免费看色网站 | 国产99久久精品一区二区永久免费 | 午夜久久电影网 | 久久不见久久见免费影院 | 一区二区不卡高清 | 五月在线视频 | 97视频免费在线观看 | 久久噜噜少妇网站 | 国产亚洲视频中文字幕视频 | 成人午夜精品久久久久久久3d | 久久久伊人网 | 日韩高清三区 | 99在线精品免费视频九九视 | 亚洲国产精品影院 | 国产成人一区二区精品非洲 | 最新日韩电影 | 在线v片 | 不卡av在线免费观看 | 中文字幕观看在线 | 国产在线成人 | 欧美日韩一区二区三区视频 | 国产aa免费视频 | 国产高清久久久久 | 欧美国产日韩一区二区三区 | 午夜资源站 | 国产在线精品一区 | 日韩国产欧美在线播放 | 久久视频在线观看 | 91在线视频| 亚洲欧洲久久久 | av中文国产| av中文字幕电影 | 精品美女国产在线 | 国产欧美在线一区二区三区 | 国产日韩欧美在线观看 | 在线影院av | 91中文视频 | 日韩欧美国产视频 | 精品视频久久 | 亚洲日韩中文字幕在线播放 | 国产免费xvideos视频入口 | 麻豆免费视频 | 超碰在线最新网址 | www.亚洲激情.com| 亚洲成人动漫在线观看 | 国产日韩在线播放 | 伊人va| 黄色网址a| 天天搞夜夜骑 | www日韩在线 | 男女视频国产 | 日日夜夜狠狠 | 国产精品手机在线播放 | 久久精品一区二区三区四区 | 91av在线视频播放 | 99爱这里只有精品 | 亚洲干视频在线观看 | 中文字幕 二区 | 国产少妇在线观看 | 久久精品96 | 香蕉在线播放 | 日韩在线视 | 国产精品视频最多的网站 | 国产精品99久久久久久人免费 | 国产精品久久久久久久7电影 | 日韩理论片 | 国产精品永久久久久久久www | av在线日韩| 日韩欧美69 | 亚洲传媒在线 | 在线观看aaa| 国产精品久久久久久模特 | 欧美另类v | 九九色在线| 九九九视频在线 | 九九九热精品免费视频观看网站 | 国产视频一 | 国内久久精品视频 | 日韩三级视频在线看 | 欧美日韩国产高清视频 | 免费在线激情视频 | 亚洲精品乱码久久久一二三 | 久久99热久久99精品 | 久久久www成人免费精品 | 黄色免费网 | 欧洲精品码一区二区三区免费看 | 久久美女免费视频 | 国产日韩精品久久 | 最近2019中文免费高清视频观看www99 | 免费看的黄色小视频 | 婷婷狠狠操| 青草视频网| 激情网五月婷婷 | 国产无套精品久久久久久 | 久九视频| 日批在线观看 | 中文字幕网站视频在线 | 91人人视频在线观看 | 一区二区三区四区五区在线视频 | 日韩免费一二三区 | 欧美高清成人 | 精品国产一区二区三区四区在线观看 | 最新色视频 | 精品国产一区二区三区在线观看 | 在线免费看黄色 | 狠狠色综合网站久久久久久久 | 成人av资源网站 | 亚洲五月综合 | 97超碰在线资源 | 黄色91在线 | 五月开心综合 | 久久久久国 | 欧美日韩午夜爽爽 | 日本三级香港三级人妇99 | 久久1电影院| 欧美日韩中文视频 | 99精品国产一区二区三区不卡 | 欧美性生活久久 | 久久经典国产视频 | 欧美午夜性 | 97超视频| 久久久久在线视频 | av片子在线观看 | 久久久观看 | 9999亚洲| 色综合久久久久久久久五月 | 日本中文字幕高清 | 久久你懂得 | 免费黄色在线 | 亚洲精品国产高清 | 亚洲欧洲精品一区 | 日批视频在线播放 | 黄网站色欧美视频 | 天天色 天天 | www.国产在线观看 | 麻豆视频免费网站 | 日韩伦理片hd | 亚洲另类xxxx| 日韩在线播放视频 | 精品国产理论 | 97超碰色偷偷 | 成年人看片网站 | 日韩欧美亚州 | 精品黄色在线观看 | 日韩欧美精品在线观看视频 | 中文字幕永久在线 | 狠狠躁天天躁综合网 | 999电影免费在线观看 | 91.麻豆视频 | 美女网站在线观看 | 久久国产精品精品国产色婷婷 | 久久视频免费在线 | 在线国产不卡 | 国产一级特黄毛片在线毛片 | 中文字幕在线一区二区三区 | 日韩精品2区 | 天天亚洲 | 久久理伦片 | 五月天久久综合网 | 免费视频久久久久 | 国产精品区一区 | 西西4444www大胆无视频 | 欧美日本日韩aⅴ在线视频 插插插色综合 | 探花视频免费观看高清视频 | 国产 在线 高清 精品 | 玖操| 日日弄天天弄美女bbbb | 久久黄色免费观看 | 天天色天天综合网 | 免费在线色 | 亚洲日本色 | 日韩免费一区 | 国产最顶级的黄色片在线免费观看 | 婷婷丁香激情网 | 久久综合久久综合九色 | 精品视频亚洲 | 91精品国自产在线观看欧美 | 午夜精品一区二区三区免费视频 | 中文字幕一区二区三区在线视频 | 欧美人zozo| 欧美日韩精品影院 | 免费视频一区 | 8x成人免费视频 | 国内精品美女在线观看 | 欧美大码xxxx | 亚洲第一色 | 免费看毛片在线 | 免费网站色 | 99久久激情| 天天干天天做天天操 | 中文字幕在线专区 | 一区二区三区手机在线观看 | 精品视频123区在线观看 | 亚州av免费 | 精品一区二区免费在线观看 | 亚洲美女精品区人人人人 | 精品国产一区二区三区久久久蜜月 | 日韩精品视频网站 | 国产精品永久免费观看 | 午夜三级毛片 | 五月天色丁香 | 狠狠gao | 免费观看黄| www.色就是色 | 亚洲日本va在线观看 | 日韩69视频| 波多野结衣在线播放视频 | 亚洲国产精品一区二区久久,亚洲午夜 | 六月丁香婷婷久久 | 午夜精品久久久久久久99婷婷 | 色中射| 日韩大片在线免费观看 | 久久成人国产精品 | 日韩成人精品 | 免费精品人在线二线三线 | 日韩久久精品一区二区 | 国产成人精品日本亚洲999 | 激情综合五月天 | 欧美日韩在线观看视频 | 九九热精品视频在线观看 | 最近2019年日本中文免费字幕 | av资源免费观看 | www.av中文字幕.com | 亚洲视频资源在线 | 国产资源站 | 91成人区| 亚洲天堂网在线视频观看 | 色视频在线观看 | 成人小视频在线播放 | 色综合久久久网 | 久久一久久 | 免费看一级特黄a大片 | 伊人日日干 | 久久婷婷五月综合色丁香 | 在线不卡中文字幕播放 | 久久综合丁香 | 天天射天天操天天色 | 91最新在线观看 | 国产二区av | 天天操天 | 色香蕉视频 | 欧美日韩国产一区二区在线观看 | 欧美久草网 | 国产精品久久久久久一二三四五 | 亚洲在线激情 | 波多野结衣在线中文字幕 | 国产黄网站在线观看 | 手机在线免费av | 成人av在线网址 | 麻豆综合网| 中文字幕免费播放 | 99久久国产免费免费 | 精品久久1 | 6080yy精品一区二区三区 | 91av在线视频播放 | www日韩精品| 草久在线 | 久久免费国产视频 | 91视频免费看 | 久久在线观看视频 | 精品999在线观看 | 91丨九色丨蝌蚪丨对白 | 中文字幕人成乱码在线观看 | 久久综合给合久久狠狠色 | 色香蕉网 | 99免费看片 | 在线视频成人 | 992tv在线 | 日韩网站在线看片你懂的 | 欧美在线不卡一区 | 久久99日韩| 五月天中文字幕 | 黄a在线看| 一区二区三区高清不卡 | 久久黄色影院 | 日韩av资源在线观看 | 亚洲在线视频网站 | 久草在线资源观看 | 国产97视频 | 91看毛片 | 天天天色| 手机在线欧美 | 精品国产乱码一区二 | 午夜视频播放 | 日韩精品一区电影 | 国产一区在线免费观看 | 视频在线播放国产 | 免费观看成人 | 日韩高清一区二区 | 在线视频观看你懂的 | 国产精品99久久免费黑人 | 国产精品久久久久影院日本 | 欧美性粗大hdvideo | 99r精品视频在线观看 | 国产69精品久久久久99 | 欧美日韩高清在线 | 国产精品成人一区二区三区吃奶 | 欧美午夜精品久久久久久浪潮 | 在线激情电影 | 久在线观看视频 | 黄色av一区 | 在线免费国产视频 | 天天干夜夜操视频 | 国产亚洲精品美女 | 欧美日韩在线精品 | 综合亚洲视频 | 天堂在线一区二区 | 成人永久视频 | 亚洲精品午夜久久久久久久 | 91桃色国产在线播放 | 久久精品一区二区三 | www.天天干.com | 国产精品99久久免费观看 | 欧美日韩性视频在线 | av线上免费看 | 五月婷婷操 | 国产精品热视频 | 激情网色| 波多野结衣在线观看一区 | 蜜臀aⅴ精品一区二区三区 久久视屏网 | 中文字幕专区高清在线观看 | 五月天网站在线 | 特级西西444www大精品视频免费看 | 日日碰狠狠添天天爽超碰97久久 | 午夜黄色 | 精品国产视频在线 | 久久久久久久福利 | 91久久久久久久一区二区 | 久久99热久久99精品 | 最新国产一区二区三区 | 天天综合导航 | av手机在线播放 | 国产一区二区精 | 国产福利av | 四虎影视成人永久免费观看亚洲欧美 | 六月丁香激情综合色啪小说 | 天天av综合网 | 黄色性av | 亚洲欧洲精品一区二区精品久久久 | 久久婷婷激情 | 伊人久久一区 | 欧美最新大片在线看 | 美女福利视频一区二区 | 亚洲欧美精品一区 | 视频高清 | 最近中文字幕完整视频高清1 | 91在线公开视频 | 西西人体4444www高清视频 | 日韩r级在线 | 国产大尺度视频 | av在线在线 | 久热久草在线 | 中文字幕91在线 | 天天亚洲 | 国产精品观看在线亚洲人成网 | 六月丁香在线观看 | 中文国产字幕在线观看 | 99精品久久久久 | 黄色日批网站 | 国产99一区视频免费 | 操操操人人 | 国产剧情亚洲 | 日韩视频三区 | 日韩国产精品一区 | 亚洲视屏在线播放 | 国产高清在线一区 | 欧美va天堂在线电影 | 99久久久国产精品美女 | 精品在线小视频 | 国产一区免费 | 久久久久久美女 | 粉嫩av一区二区三区四区 | 成年人免费看片 | 国产日韩亚洲 | 九九色在线 | 天天色天天综合网 | 黄色片网站免费 | 91香蕉嫩草 | 中文字幕在线观看三区 | 国产精品美女久久久久久久久久久 | 午夜国产影院 | 国产精品久久久久久久久久直播 | 日韩在线不卡视频 | 一级免费av | 成人av网站在线 | 最近的中文字幕大全免费版 | 国产一区影院 | 毛片a级片 | 欧美激情视频免费看 | 在线观看91久久久久久 | 精品久久久一区二区 | 六月天综合网 | 99久久婷婷国产综合亚洲 | 国产免费一区二区三区最新 | 亚洲精品美女在线观看播放 | 国产精品69av | 国产色一区 | 精品国产乱码久久久久久天美 | 免费又黄又爽 | 国产精品日韩欧美一区二区 | 日本不卡一区二区 | 色综合久久中文字幕综合网 | 日韩深夜在线观看 | 国色天香永久免费 | 成人午夜剧场在线观看 | 黄视频网站大全 | 国产中文字幕一区二区 | 亚洲国产片 | 欧美日本一二三 | 激情偷乱人伦小说视频在线观看 | 欧美午夜寂寞影院 | www.五月天婷婷.com | 欧美激情xxxx性bbbb | 制服丝袜欧美 | 久久国产精品一区二区三区四区 | 韩国一区在线 | www.久草.com | 视频在线观看亚洲 | 免费av免费观看 | 成人午夜精品久久久久久久3d | 亚洲欧美综合精品久久成人 | 久久99偷拍视频 | 国产在线观看99 | 婷婷丁香狠狠爱 | 97福利社| 日本中文字幕在线观看 | av动态图片 | 国产精品自产拍在线观看蜜 | 又爽又黄又无遮挡网站动态图 | 日韩亚洲在线 | 久久99国产精品视频 | 永久免费毛片在线观看 | 日本精品视频在线播放 | 婷婷射五月 | 中文字幕一区2区3区 | 久久一区国产 | 欧美日韩不卡一区二区三区 | 亚洲视频精品 | 天天操天天舔天天爽 | 久草在线视频免费资源观看 | 蜜臀一区二区三区精品免费视频 | 久日精品 | 在线观看免费版高清版 | 免费又黄又爽的视频 | 九色最新网址 | 成年人黄色免费视频 | 狠狠狠狠狠狠干 | 玖玖玖在线 | 一区二区三区四区精品视频 | 91九色成人蝌蚪首页 | 日本精品一区二区三区在线播放视频 | 久久精品二区 | 欧美一级激情 | 福利一区在线视频 | 亚洲精品ww| 天天操天天干天天玩 | 中文字幕刺激在线 | 国产精品久久久久久久久久不蜜月 | 久久久久免费精品国产小说色大师 | 国产精品色婷婷 | av在线直接看 | 91精品久久久久久久久久入口 | 精品久久久久久久 | 麻豆视频在线 | 国内免费的中文字幕 | 69xxxx欧美 | 人操人 | 精品999在线观看 |