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

Linux高性能編程—哈希表

系統(tǒng) Linux
哈希表(Hash table,也叫散列表),是根據(jù)關(guān)鍵字(Key)直接進行訪問的數(shù)據(jù)結(jié)構(gòu)。它通過把關(guān)鍵字映射到表中一個位置來訪問記錄,以加快查找的速度。這個映射函數(shù)叫做哈希函數(shù)(也叫散列函數(shù)),存放記錄的數(shù)組叫做哈希表。

大家好,這里是物聯(lián)網(wǎng)心球。

談到Linux高性能編程,我們繞不開高效數(shù)據(jù)結(jié)構(gòu),今天我們來講解哈希表,哈希表是使用非常廣泛的數(shù)據(jù)結(jié)構(gòu),很多開源項目都會用到哈希表,Linux內(nèi)核也大量使用了哈希表。

1.什么是哈希表?

  在介紹哈希表之前,我們先來思考一個問題:我們?nèi)绾瓮ㄟ^學(xué)生名從學(xué)生信息表中快速查找出學(xué)生信息?

圖片圖片

為了從學(xué)生信息表中快速查找學(xué)生信息,我們需要借助一種高效數(shù)據(jù)結(jié)構(gòu)哈希表來完成。

 哈希表(Hash table,也叫散列表),是根據(jù)關(guān)鍵字(Key)直接進行訪問的數(shù)據(jù)結(jié)構(gòu)。它通過把關(guān)鍵字映射到表中一個位置來訪問記錄,以加快查找的速度。這個映射函數(shù)叫做哈希函數(shù)(也叫散列函數(shù)),存放記錄的數(shù)組叫做哈希表。

圖片圖片

    哈希表最大的特點就是可以快速實現(xiàn)查找、插入和刪除操作,由于哈希表直接通過關(guān)鍵字映射查找,時間復(fù)雜度接近于O(1)。

    哈希表廣泛應(yīng)用于數(shù)據(jù)庫索引、緩存系統(tǒng)、字典實現(xiàn)、計數(shù)器等多種場景。

2.哈希表重要概念

學(xué)習哈希表我們需要掌握幾個重要概念:哈希函數(shù),哈希沖突,哈希擴容。

2.1 哈希函數(shù)

哈希函數(shù)是將任意長度的輸入消息映射為固定長度輸出的函數(shù),哈希函數(shù)有很多種構(gòu)造方法:

  • 直接定址法:取關(guān)鍵字或關(guān)鍵字的某個線性函數(shù)值為哈希地址,形式為H(key)=key或H(key)=a*key+b(a、b為常數(shù))。
  • 數(shù)字分析法:適用于關(guān)鍵字位數(shù)多且某些位分布不均的情況,通過抽取關(guān)鍵字中分布均勻的若干位作為哈希地址。
  • 平方取中法:當關(guān)鍵字中各位分布不均時,可求其平方值并取中間的幾位作為哈希地址。
  • 除留余數(shù)法:最常用的方法,形式為H(key)=key mod p(p<m,m為哈希表長)。
  • 折疊法:適用于關(guān)鍵字位數(shù)多且分布均勻的情況,將關(guān)鍵字分割后疊加求和作為哈希地址。
  • 隨機數(shù)法:取關(guān)鍵字的隨機函數(shù)值作為哈希地址,適用于關(guān)鍵字長度不等的情況。

2.2 哈希沖突

哈希沖突是指不同輸入經(jīng)哈希函數(shù)得到相同輸出。

具體來說,在使用哈希函數(shù)時,可能會出現(xiàn)兩個或更多的輸入值被映射到同一哈希值的情況,這就是哈希沖突。在哈希表中,這種現(xiàn)象會導(dǎo)致不同的鍵被映射到同一個位置,從而可能引發(fā)數(shù)據(jù)丟失或檢索效率下降的問題,因為需要額外的操作來處理這種沖突。

圖片圖片

 哈希沖突的發(fā)生是由于哈希函數(shù)將任意長度的輸入轉(zhuǎn)換為固定長度的輸出,而輸出空間通常遠小于輸入空間,因此不同的輸入可能會映射到相同的輸出地址上。

解決哈希沖突的方法包括開放尋址法、鏈表法等。

1)開放尋址法

    當哈希表中的一個位置被占用時,此方法會尋找下一個可用的位置來存放數(shù)據(jù)。此方法避免了使用額外的數(shù)據(jù)結(jié)構(gòu),如鏈表,來存儲具有相同哈希值的鍵值對。

圖片圖片

2)鏈表法

    鏈表法通過維護一個鏈表數(shù)組來解決哈希沖突。

    每個鏈表頭指針存儲在數(shù)組的一個槽位中,具有相同哈希值的所有元素都將存儲在同一個鏈表中。

    這種方法允許哈希表有更高的裝載因子,因為它不受聚集問題的影響。

圖片圖片

2.3 哈希擴容

哈希擴容是哈希表在數(shù)據(jù)量達到一定閾值時增加其容量的過程。

這里需要引入一個概念裝載因子。

哈希表裝載因子 = 插入表中的元素個數(shù) / 哈希表長度

當哈希表中的元素數(shù)量超過設(shè)定的裝載因子與表長度的乘積時,會觸發(fā)擴容操作。哈希擴容的目的是減少哈希沖突,提高查詢和插入效率。

圖片圖片

3.哈希表編程

Linux內(nèi)核很多模塊使用了哈希表,我們參考Linux內(nèi)核哈希表(hlist)來設(shè)計我們自己的哈希表。

 哈希表重要數(shù)據(jù)結(jié)構(gòu)如下:

struct hlist_node {            //哈希節(jié)點
    struct hlist_node *next, **pprev; //后驅(qū)指針,前驅(qū)指針
};

struct hlist_head {         //哈希鏈表頭
    struct hlist_node *first;  //first指針
};

typedef struct pack {
    struct hlist_node node; //哈希節(jié)點
    int seq;            //關(guān)鍵字
} pack_t;

typedef struct hash_table {
    char name[24];     //哈希表名稱
    int num;         //哈希表元素數(shù)量
    int size;        //哈希表大小
    struct hlist_head htable[0]; //哈希表
}hash_table_t;

1) 創(chuàng)建哈希表

hash_table_t *hash_table_create(int size) {
    hash_table_t *t = (hash_table_t *)malloc(sizeof(hash_table_t) + size * sizeof(struct hlist_head));
    if (!t) return NULL;

    t->num = 0;
    t->size = size;
    sprintf(t->name, "%d hash table", size);
    for (int i = 0; i < size; i++) {
        hlist_head_init(&t->htable[i]);
    }

    return t;
}

哈希表采用柔性數(shù)組htable[0]表示,malloc申請內(nèi)存時,除了申請hash_table_t結(jié)構(gòu)大小內(nèi)存外,還要申請哈希表數(shù)組大小內(nèi)存。

圖片圖片

    申請完哈希表數(shù)組后,需通過hlist_head_init函數(shù)對哈希表數(shù)組每個鏈表進行初始化。

2)插入節(jié)點

void hash_table_insert(struct hlist_node *node, int key, hash_table_t *t) {
    int index = key & (t->size - 1); //哈希函數(shù),計算索引值
    hlist_add_head(node, &t->htable[index]); //插入節(jié)點
    t->num++; //鍵值對加1
    printf("%s num/size:%d/%d insert key:%d\n", t->name, t->num, t->size, key);
}

pack_t *pkt = malloc(sizeof(pack_t)); //創(chuàng)建數(shù)據(jù)包節(jié)點
hlist_node_init(&pkt->node); //初始化節(jié)點
pkt->seq = seq; //設(shè)置關(guān)鍵字
hash_table_insert(&pkt->node, pkt->seq, t); //插入哈希表

    哈希表插入節(jié)點步驟:

  • 通過關(guān)鍵字計算出哈希表數(shù)組索引值,通過索引值找到鏈表頭。
  • 將節(jié)點插入鏈表頭。

圖片圖片

    為了保證哈希表通用性,Linux內(nèi)核通常會把節(jié)點域和數(shù)據(jù)域進行解耦,節(jié)點域只負責完成節(jié)點的插入,查找,刪除,數(shù)據(jù)域可以根據(jù)業(yè)務(wù)需求自行定義。

    測試程序中的struct pack結(jié)構(gòu)的node成員為節(jié)點域,seq為數(shù)據(jù)域。

3) 查詢節(jié)點

#define hlist_for_each_safe(pos, n, head) \
    for (pos = (head)->first; pos && ({ n = pos->next; 1; }); \
         pos = n)

hlist_for_each_safe(pos, n, &t->htable[index]) {
        if (pos) {
    //查詢成功
        }
}

    哈希表查詢節(jié)點步驟:

  • 通過關(guān)鍵字計算出哈希表數(shù)組索引值,通過索引值找到鏈表頭。
  • 通過for循環(huán)輪詢鏈表,直到找到關(guān)鍵字匹配成功的節(jié)點。

4) 刪除節(jié)點

void hlist_del_node(struct hlist_node *node) {
    struct hlist_node *next = node->next;
    struct hlist_node **pprev = node->pprev;
    WRITE_ONCE(*pprev, next);
    if (next) 
          WRITE_ONCE(next->pprev, pprev);
}

void hash_table_del(int key, hash_table_t *t, do_del del) {
    int index = key & (t->size - 1);
    struct hlist_node *pos, *n;
    //查詢鏈表
    hlist_for_each_safe(pos, n, &t->htable[index]) {
        if (pos) {
            hlist_del_node(pos); //從鏈表刪除節(jié)點
            del(pos); //釋放節(jié)點內(nèi)存
            t->num--;
            printf("%s num/size:%d/%d del key:%d\n", t->name, t->num, t->size, key);
        }
    }
}

    哈希表刪除節(jié)點步驟:

  • 通過關(guān)鍵字計算出哈希表數(shù)組索引值,通過索引值找到鏈表頭。
  • 通過for循環(huán)輪詢鏈表,通過關(guān)鍵字找到匹配的節(jié)點并刪除節(jié)點。

    刪除節(jié)點的步驟和插入節(jié)點的步驟相反。

圖片圖片

5)哈希擴容

void hash_table_resize(hash_table_t *t1, hash_table_t *t2, do_move move) {
    printf("%s num/size:%d/%d move to %s num/size:%d/%d\n",
            t1->name, t1->num, t1->size,
            t2->name, t2->num, t2->size);
    struct hlist_node *pos, *n;
    for (int i = 0; i < t1->size; i++) { //輪詢舊哈希表每個鏈表
        hlist_for_each_safe(pos, n, &t1->htable[i]) {
            if (pos) { //查找到生效節(jié)點
                hlist_del_node(pos); //刪除節(jié)點
                move(pos, t2); //將節(jié)點移至新哈希表
                t2->num++;
            }
        }
    }
}

if (t->num > t->size) { //判斷負載因子,觸發(fā)哈希擴容
    t2 = hash_table_create(t->size << 1); //新哈希表擴容至2倍
    if (!t2) {
       printf("hash table create error\n");
       return -1;
    }
    hash_table_resize(t, t2, pack_move); //開始擴容
    hash_table_destroy(t, pack_del); //釋放就哈希表
    t = t2;
}

    當哈希表元素越來越多時,此時整個哈希表的插入,查詢,刪除效率會越來越低,通過裝載因子判斷是否需要進行哈希擴容。

    哈希擴容步驟:

  • 創(chuàng)建新哈希表,新哈希表的大小為舊哈希表的2倍。
  • 將舊哈希表的所有節(jié)點通過新哈希函數(shù)移至新哈希表。
  • 刪除舊哈希表。

6) 釋放哈希表

void hash_table_destroy(hash_table_t *t, do_del del) {
    struct hlist_node *pos, *n;
    for (int i = 0; i < t->size; i++) { //刪除哈希表生效節(jié)點
        hash_table_del(i, t, del);
    }
    free(t); //釋放哈希表內(nèi)存
}

    釋放哈希表需要清空哈希表數(shù)組每個鏈表中的節(jié)點,防止內(nèi)存泄露,最后釋放哈希表。

責任編輯:武曉燕 來源: 物聯(lián)網(wǎng)心球
相關(guān)推薦

2024-10-06 14:37:52

2024-08-06 08:22:18

2024-09-03 09:15:37

2024-03-18 13:43:20

Linux架構(gòu)

2023-11-01 11:59:13

2022-03-21 14:13:22

Go語言編程

2023-11-01 11:27:10

Linux協(xié)程

2023-11-01 10:38:46

Linux高性能網(wǎng)絡(luò)編程

2023-11-01 11:40:46

Linux高性能網(wǎng)絡(luò)編程工具

2023-11-01 10:58:31

系統(tǒng)調(diào)用高性能網(wǎng)絡(luò)編程Linux

2023-11-01 11:51:08

Linux性能優(yōu)化

2020-11-06 18:51:17

LinuxTCP服務(wù)器

2023-11-01 11:07:05

Linux高性能網(wǎng)絡(luò)編程線程

2023-11-01 11:13:58

Linux信號處理定時器

2023-11-01 11:20:57

2010-07-13 16:20:21

Perl 哈希表

2009-03-01 22:23:39

LinuxKernelLinuxDNA

2023-11-01 10:43:31

Linux高性能網(wǎng)絡(luò)編程

2011-03-25 18:23:43

微軟高性能計算

2018-06-01 14:00:00

數(shù)據(jù)庫MySQL分庫分表
點贊
收藏

51CTO技術(shù)棧公眾號

国产精品美女av| 亚洲国产精品yw在线观看| 中文网丁香综合网| www.色呦呦| 性欧美xxxx大乳国产app| 中日韩美女免费视频网站在线观看 | 亚洲妇女av| 欧美狂野另类xxxxoooo| 蜜桃传媒一区二区三区| 91涩漫在线观看| 高清不卡在线观看av| 国产成人免费av电影| 亚洲av无码一区二区三区在线| 国产精品45p| 欧美日韩日日骚| 国产精品一区二区免费在线观看| 91在线看黄| 91美女视频网站| 91九色蝌蚪嫩草| 国产91av在线播放| 日韩视频久久| 欧美成人激情图片网| 亚洲一区二区自偷自拍| 岛国成人av| 日韩网站在线看片你懂的| 97公开免费视频| а√天堂8资源中文在线| 亚洲天天做日日做天天谢日日欢| 蜜桃臀一区二区三区| 国产成人久久精品77777综合 | 大地资源中文在线观看免费版| 国产成人免费视频精品含羞草妖精| 国产精品久久久久aaaa九色| 亚洲精品视频在线观看免费视频| 欧美区亚洲区| 超碰97人人做人人爱少妇| 夜夜春很很躁夜夜躁| 久久a爱视频| 精品国产免费视频| 无码人妻少妇色欲av一区二区| 亚洲a成人v| 欧美私模裸体表演在线观看| 欧美牲交a欧美牲交aⅴ免费真| xxx.xxx欧美| 亚洲午夜久久久久久久久电影网| 欧美精品一区二区性色a+v| 天堂а√在线官网| 国产精品网站在线播放| 日韩欧美亚洲精品| 岛国在线视频免费看| 久久久久久99久久久精品网站| 国语精品免费视频| 手机看片福利在线| 成人av午夜电影| 国产欧美一区二区三区不卡高清| 丰满人妻一区二区三区四区53| 国产成人午夜精品影院观看视频 | 中文字幕第17页| 日本午夜免费一区二区| 欧美日韩一区二区三区四区| www午夜视频| 国产成人午夜性a一级毛片| 精品污污网站免费看| 污污网站免费看| 四虎国产精品免费久久5151| 在线成人午夜影院| 亚洲国产综合av| 136福利精品导航| 亚洲福利视频免费观看| 一女三黑人理论片在线| 国产精品免费99久久久| 色婷婷av一区二区三区在线观看| 性欧美疯狂猛交69hd| 国精品一区二区| 91高潮精品免费porn| 成人av网站在线播放| 免费人成黄页网站在线一区二区| 国产精品久久久久一区二区| 国产伦一区二区| 成人黄色a**站在线观看| 九九热久久66| 尤物在线视频| 亚洲永久精品大片| 成年人视频网站免费观看| www.久久.com| 亚洲精品在线三区| 亚洲成人黄色av| 亚洲大全视频| 清纯唯美亚洲综合| 国产精品久久久久久久免费| 成人黄色综合网站| 日韩欧美亚洲日产国| 超碰在线caoporn| 精品久久久久久久中文字幕| 成年网站在线播放| 大桥未久女教师av一区二区| 在线看日韩欧美| 麻豆一区二区三区精品视频| 丝袜诱惑亚洲看片| 99在线观看| av男人的天堂在线| 性做久久久久久免费观看| 在线免费av播放| 欧美久久精品| 一区三区视频| 丁香六月综合激情| 国产精品日韩一区二区三区| 欧美成熟毛茸茸| 亚洲乱码一区二区三区在线观看| 国产二区视频在线播放| 国产精品xnxxcom| 亚洲天堂成人在线| 精品无码人妻一区二区三区品| 丝袜美腿成人在线| 福利视频一区二区三区| 在线看的av网站| 欧美日韩视频在线| 少妇搡bbbb搡bbb搡打电话| 色综合咪咪久久网| 日韩暖暖在线视频| 天堂av一区二区三区| 自拍偷拍亚洲欧美日韩| 妞干网在线免费视频| 成人资源在线| 欧美乱人伦中文字幕在线| 中文区中文字幕免费看| 久久这里都是精品| 欧美一区二区三区爽大粗免费| 国产一区二区| zzijzzij亚洲日本成熟少妇| 中文字幕免费高清网站| www国产成人免费观看视频 深夜成人网 | 中文字幕在线观看欧美| 26uuu久久天堂性欧美| 成人黄色大片网站| 波多野结衣一区二区三区免费视频| 日韩亚洲第一页| 亚洲天堂中文在线| 国产日韩高清在线| 美女网站免费观看视频| 欧美激情在线精品一区二区三区| 97精品一区二区三区| 欧美一区二不卡视频| 亚洲综合免费观看高清完整版在线| 女同激情久久av久久| 99re66热这里只有精品8| 国产精品三级网站| 亚洲综合精品| 4k岛国日韩精品**专区| 国产91免费看| 亚洲一区二区三区视频在线播放 | 亚洲精品一区二区三区樱花| 吞精囗交69激情欧美| 亚洲免费视频观看| 无码人妻一区二区三区线| 91蜜桃网址入口| 久久无码高潮喷水| 国产精品一在线观看| 国产成人精品午夜| 一级日本在线| 欧美一级在线视频| 妺妺窝人体色www在线下载| 国产99久久久国产精品潘金 | 国产精品国精产品一二| 亚洲成人三级在线| 无码人妻丰满熟妇区bbbbxxxx| 久久久精品综合| 国产97色在线 | 日韩| 精品毛片免费观看| 成人在线播放av| 国产后进白嫩翘臀在线观看视频| 亚洲高清免费观看高清完整版| 日韩黄色在线视频| 国产无人区一区二区三区| 天天干天天操天天做| 欧美激情 亚洲a∨综合| 精品国产乱码久久久久久丨区2区| 欧美男男激情videos| 国产一区二区三区视频在线观看| 中文字幕一区二区三区人妻四季 | 日韩精品在线观看免费| 国产丝袜欧美中文另类| 永久免费黄色片| 在线综合欧美| 亚洲三区在线| 久久精品国产亚洲blacked| 国产成人亚洲精品| 黄色精品在线观看| 日韩精品在线免费观看| 一级黄色小视频| 亚洲va中文字幕| 制服丨自拍丨欧美丨动漫丨| 成人听书哪个软件好| 国产又黄又大又粗视频| 小小影院久久| 久久久久久高清| 精品视频在线播放一区二区三区| 国语对白做受69| 欧美日韩视频在线播放| 亚洲福利在线播放| 国产乱色精品成人免费视频| 精品久久中文字幕| 久热这里有精品| 中文av一区二区| 国产十八熟妇av成人一区| 另类小说综合欧美亚洲| 欧美精品色婷婷五月综合| 欧美激情91| 宅男噜噜99国产精品观看免费| 欧美黄色网视频| 91在线|亚洲| 黑人一区二区三区| 国产91精品视频在线观看| 久操视频在线| 中文字幕亚洲欧美一区二区三区 | 91麻豆国产福利在线观看| 一级做a免费视频| 视频一区在线播放| 男人和女人啪啪网站| 欧美午夜一区二区福利视频| 亚洲第一导航| 国产尤物久久久| 欧美精品成人一区二区在线观看| 成人av综合网| 99精品国产高清在线观看| 久久久久伊人| 国产精品青青在线观看爽香蕉| 悠悠资源网亚洲青| 97精品国产91久久久久久| 日日夜夜天天综合入口| 日韩资源在线观看| 97视频精彩视频在线观看| 亚洲人高潮女人毛茸茸| 性感美女视频一二三| 精品88久久久久88久久久| 国产高中女学生第一次| 欧美美女bb生活片| 在线视频1卡二卡三卡| 在线观看免费亚洲| 日本一本在线观看| 色婷婷综合久久| 国产免费一级视频| 色94色欧美sute亚洲线路一ni | 久久久夜夜夜| 成人三级视频在线播放| 久久精品123| 国产精品人人妻人人爽人人牛| 欧美亚洲免费| 亚洲成色www.777999| 青青草97国产精品免费观看| 国产野外作爱视频播放| 全国精品久久少妇| 91欧美视频在线| 经典三级在线一区| 亚洲一区二区三区四区精品| 国产精品66部| 男人的天堂影院| 久久日一线二线三线suv| 国产亚洲精品熟女国产成人| 国产清纯在线一区二区www| 美国一级黄色录像| 亚洲视频 欧洲视频| 免费一级肉体全黄毛片| 亚洲成人综合在线| 国产成人一级片| 91国偷自产一区二区使用方法| 日本三级一区二区三区| 欧美日韩成人激情| 99国产精品久久久久久久成人| 日韩欧美中文字幕公布| 免费观看黄色一级视频| 亚洲日韩第一页| 毛片在线播放a| 国模私拍视频一区| 午夜激情成人网| 91精品久久久久久久久久入口 | 亚洲国产精彩中文乱码av在线播放| 视频污在线观看| 亚洲午夜未删减在线观看 | 羞羞色国产精品| 精品欧美一区二区三区在线观看 | 亚洲第一黄色网址| 欧美国产乱子伦| 久久久精品视频在线| 日韩欧美一区二区在线| 国产露脸91国语对白| 亚洲精品720p| 男人天堂av网| 亚洲三级黄色在线观看| 午夜免费播放观看在线视频| 久久久久国产精品免费网站| 视频精品导航| 黑人另类av| 欧美日韩在线二区| 肉大捧一出免费观看网站在线播放 | 一区二区三区四区视频| 色呦呦在线播放| 国产精品久久久久9999| 精品成人自拍视频| 正在播放91九色| 免费视频久久| 久久国产劲爆∧v内射| 国产精品欧美久久久久无广告| 国产真实夫妇交换视频| 精品视频在线免费观看| 天天摸夜夜添狠狠添婷婷| 精品国模在线视频| 久久爱91午夜羞羞| 国产精品区一区二区三含羞草| 久久中文字幕二区| 日av中文字幕| 粉嫩av一区二区三区在线播放 | 国产日韩中文字幕| 亚洲素人在线| 99在线观看视频免费| 免费人成在线不卡| 日韩中文字幕电影| 五月婷婷综合激情| а√中文在线资源库| 精品国产依人香蕉在线精品| 全球最大av网站久久| 久久成人资源| 亚洲韩日在线| 91精品又粗又猛又爽| 大陆精大陆国产国语精品| 婷婷中文字幕综合| 日韩伦人妻无码| 69p69国产精品| 成人福利在线| 国产97在线视频| 亚洲人成网www| 免费看国产一级片| 成人激情免费网站| 久久久综合久久久| 日韩欧美亚洲国产另类| 国产黄色小视频在线| 国产日韩精品电影| 日韩免费视频| 黄色片在线免费| 国产视频一区不卡| 久久久精品视频网站| 亚洲免费伊人电影在线观看av| 电影在线观看一区| 久久国产精品久久精品国产| 一区二区三区精品视频在线观看| 精品久久久久一区二区| 亚洲国产三级在线| 男人天堂av网| 51午夜精品视频| 夜色77av精品影院| 91淫黄看大片| 国产精品国产三级国产aⅴ无密码| 中文字幕一二三四| 久久久999成人| 一区二区日韩| 国产美女主播在线播放| 91免费版在线| 一区精品在线观看| 久久综合亚洲社区| 日本激情视频网站| 成人午夜av在线| 一区二区三区在线观看免费视频| 色狠狠一区二区三区香蕉| a视频网址在线观看| 91在线国产电影| 狠狠入ady亚洲精品| 少妇一级淫片免费放播放| 日韩欧美中文在线| 色欧美激情视频在线| 91视频99| 香蕉久久国产| 99自拍偷拍视频| 精品免费一区二区三区| 女人让男人操自己视频在线观看| 欧美一级爱爱| 黑人精品欧美一区二区蜜桃| 久热精品在线观看| 国产一区二区三区中文| 激情不卡一区二区三区视频在线| 亚洲 欧美 综合 另类 中字| 久久久影院官网| 国产乱码精品一区二三区蜜臂 | 日本久久免费| 中文字幕成人一区| 白白色 亚洲乱淫| 亚洲国产无线乱码在线观看| 久久91亚洲人成电影网站| 校园春色另类视频| 亚洲欧美手机在线| 欧美日韩国内自拍| 中文字幕在线播放| 国产99视频精品免费视频36| 水蜜桃久久夜色精品一区的特点| 少妇人妻丰满做爰xxx| 精品亚洲男同gayvideo网站| 色999韩欧美国产综合俺来也| 国产一区二区视频播放| 国产精品免费人成网站| 色wwwwww| 亚洲一区亚洲二区|