亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

C語言實(shí)現(xiàn)靜態(tài)鏈表的方法

2020-01-26 16:20:34
字體:
供稿:網(wǎng)友

在動(dòng)手之前我一直以為靜態(tài)鏈表和動(dòng)態(tài)鏈表沒有什么差別,細(xì)細(xì)一想才發(fā)現(xiàn),原來靜態(tài)鏈表之中隱藏著一個(gè)非常值得討論的話題――內(nèi)存管理。

靜態(tài)鏈表的“靜態(tài)”二字是指內(nèi)存的來源為靜態(tài)內(nèi)存(通常用全局?jǐn)?shù)組)。與動(dòng)態(tài)鏈表不同,在靜態(tài)鏈表中節(jié)點(diǎn)內(nèi)存的申請與釋放都需要自行維護(hù),由于這里是鏈表,也很容易想到將空余的節(jié)點(diǎn)鏈接起來形成一個(gè)free_list,每次需要時(shí)從free_list頭部取出一個(gè)節(jié)點(diǎn),釋放時(shí)再將節(jié)點(diǎn)加到頭部,這樣就能夠非常容易的實(shí)現(xiàn)鏈表的其他操作。

復(fù)制代碼 代碼如下:

// 靜態(tài)鏈表 的實(shí)現(xiàn)
 #include <stdio.h>

 #define MAXN 16 // capacity of list.
 typedef int element; // element type.

 // define boolean type:
 typedef int bool;
 #define true -1
 #define false 0

 #define NPTR -1 // null pointer definition. can not between 0 to MAXN-1.
 typedef int pointer;

 #define DEBUGVAL(x) printf("%s: %d/n", #x, (x)); // a macro for debug.

 struct __node
 {
     element data;
     pointer next;
 }SLList[MAXN];
 pointer ifree, idata;

 #define nextof(p) SLList[p].next
 #define dataof(p) SLList[p].data

 #define _alloc(d) ifree; dataof(ifree)=(d); ifree != NPTR ? ifree=nextof(ifree) : NPTR
 #define _free(p)  nextof(p)=ifree; ifree = p

 void init()
 {
     int i;
     ifree = 0;
     idata = NPTR;
     for( i=0; i < MAXN-1; i++)
         nextof(i) = i+1;
     nextof(i) = NPTR;
 }

 // clear all nodes.
 void clear() { init(); }

 // push val to front.
 bool push_front(element val)
 {
     pointer tmp, np;
     if( ifree != NPTR ) {
         np = _alloc(val);
         nextof(np) = idata;
         idata = np;
         return true;
     }
     return false;
 }

 // push val to end of list.
 bool push_back(element val)
 {
     if( idata == NPTR ) { // 空表,直接寫入
         idata = _alloc(val);
         nextof(idata) = NPTR;
         return true;
     }
     if( ifree != NPTR ) { // 非空,先找到最后一個(gè)節(jié)點(diǎn)
         pointer last = idata, np;
         while( nextof(last) != NPTR ) last = nextof(last);       
         np = _alloc(val);
         nextof(np) = NPTR;
         nextof(last) = np;
         return true;
     }
     return false;
 }

 // insert val to after p pointed node.
 bool insert_after(pointer p, element val)
 {
     if( ifree != NPTR && p != NPTR ) {
         pointer pn = _alloc(val);
         nextof(pn) = nextof(p);
         nextof(p)  = pn;       
         return true;
     }
     return false;
 }

 // insert to the position in front of p.
 bool insert(pointer ptr, element val)
 {
     if( ifree == NPTR ) return false;  // 沒有結(jié)點(diǎn),直接返回
     if( ptr == idata ) { // 有一個(gè)節(jié)點(diǎn)
         pointer np = _alloc(val);
         nextof(np) = idata;
         idata = np;   
         return true;
     }
     else { // 其他情況,先找 ptr 的前驅(qū),再插入
         pointer p = idata;
         while(  p != NPTR ) {
             if( nextof(p) == ptr ) { // find p -- the prev node of ptr.
                 return insert_after(p, val); // insert val after p.           
             }
            p = nextof(p);
         }
     }
     return false;
 }

 // find element, return the prev node pointer.
 pointer find_prev(element val)
 {
     pointer p = idata;
     while(  p != NPTR ) {
         if( dataof( nextof(p) ) == val )
             return p;
         p = nextof(p);
     }
     return NPTR;
 }

 // find element, return the node  pointer.
 pointer find(element val)
 {
     pointer p = idata;
     while(  p != NPTR ) {
         if( dataof(p) == val ) return p;
         p = nextof(p);
     }
     return NPTR;
 }

 // pop front element.
 void pop_front()
 {
     if( idata != NPTR ) { // 將 data list 最前面的節(jié)點(diǎn) 移到 free list 上
 #if 0
         pointer p = idata;       
         idata = nextof(idata); // idata = nextof(idata);
         nextof(p) = ifree;  // SLList[p].next = ifree;
         ifree = p;
 #else
         pointer p = idata;
         idata = nextof(idata);
         _free(p);
 #endif
     }
 }

 // pop back element.
 void pop_back()
 {
     if( idata == NPTR ) return;
     if( nextof(idata) == NPTR ) { // only 1 node.
         nextof(idata) = ifree;
         ifree = idata;
         idata = NPTR;
     }
     else { // 找到最后一個(gè)節(jié)點(diǎn) p,以及它的前驅(qū) q.
         // TODO: find the last node p, and it's perv node q.
         pointer p = idata, q;
         while( nextof(p) != NPTR ) {
             q = p;
             p = nextof( p );
         }
         // remove *p to free list, update nextof(q) to NPTR.
         nextof(p) = ifree;
         ifree = p;
         nextof(q) = NPTR;
     }
 }

 void show()
 {
     pointer p = idata;
     for( ; p != NPTR; p = nextof(p) ) {
         printf(" %3d ", dataof(p) );
     }
     printf("/n");
 }

 #define INFOSHOW
 void info()
 {
 #ifdef INFOSHOW
     int i;   
     DEBUGVAL(ifree);
     DEBUGVAL(idata);
     puts("====================/n"
         "index/tdata/tnext/n"
         "--------------------");
     for(i=0; i<MAXN; i++) {
         printf("%d/t%d/t%d/n", i, SLList[i].data, SLList[i].next);
     }
     puts("====================/n");
 #endif
 }

 /*
     測試程序:
 */
 int main()
 {
     int i;
     init();

 #if 1  // push_front test:
     puts("push_front test:");
     for(i=0; i<MAXN+2; i++)    {
         push_front(2*i+1);
         show();   
     }

     puts("pop_front test:");
     for(i=0; i<MAXN+2; i++)    {
         pop_front();
         show();
     }
 #endif

 #if 1 // push_back test:
     puts("push_back test:");
     for(i=0; i<MAXN+2; i++)    {
         push_back((i+1)*10);
         show();   
     }

     puts("pop_back test:");
     for(i=0; i<MAXN+1; i++)
     {
         pop_back();
         show();
     }
 #endif

 #if 1 // insert test:
     puts("insert test:");
     for(i=0; i<MAXN+2; i++)
     {
         insert(idata, (i+1)*10);
         show();
     }
     puts("clear.../n");
     clear();
 #endif

 #if 1 // insert_after test:
     puts("insert_after test:");
     push_back(-99);
     for(i=0; i<MAXN+1; i++) {
         insert_after(idata, i+1);
         show();
     }
     puts("clear.../n");
     clear();
 #endif

 #if 1 // find test:
     puts("find test:");
     for(i=0; i<MAXN/2; i++) {
         push_front(MAXN-i);
         push_back(MAXN/2-i);
         //show();
     }
     show();
     info();
     for(i=0; i<MAXN; i++) {
         int val = rand()%(2*MAXN);
         pointer p = find(val);
         if( p != NPTR )
             printf("%3d %3d found at %d/n", val, dataof(p), p);
         else
             printf("%3d not found/n", val);
     }
 #endif

 #if 1
     puts("/nfind_prev test:");
     for(i=0; i<MAXN; i++) {
         int val = rand()%(2*MAXN);
         pointer p = find_prev(val);
         if( p != NPTR )
             printf("%3d %3d found at %d's next./n", val, dataof(nextof(p)), p);
         else
             printf("%3d not found/n", val);
     }
 #endif

 #if 1 // find_prev and insert_after test:
     clear();
     puts("/nfind_prev and insert_after test:");
     for(i=0; i<MAXN/2; i++)    {
         push_front(MAXN/2-i);
     }
     show();
     for(i=0; i<MAXN/2; i++) {
         int val = rand()%(2*MAXN), n=-(i+1);
         pointer p = find_prev(val);
         if( p != NPTR ) {
             printf("insert %d to front of %d:", n, val);
             insert_after(p, n);
             show();
         }
     }   
 #endif   

 #if 1 // find and insert test:
     clear();
     puts("/nfind and insert test:");
     for(i=0; i<MAXN/2; i++)    {
         push_front(MAXN/2-i);
     }
     show();
         for(i=0; i<MAXN/2; i++) {
         int val = rand()%MAXN, n=-(i+1);
         pointer p = find(val);
         if( p != NPTR ) {
             printf("insert %d to after of %d:", n, val);
             insert_after(p, n);
             show();
         }
     }
 #endif

     puts("end of main().");   
     return 0;
 }

 //

測試結(jié)果如下:


復(fù)制代碼 代碼如下:

push_front test:
    1
    3    1
    5    3    1
    7    5    3    1
    9    7    5    3    1
   11    9    7    5    3    1
   13   11    9    7    5    3    1
   15   13   11    9    7    5    3    1
   17   15   13   11    9    7    5    3    1
   19   17   15   13   11    9    7    5    3    1
   21   19   17   15   13   11    9    7    5    3    1
   23   21   19   17   15   13   11    9    7    5    3    1
   25   23   21   19   17   15   13   11    9    7    5    3    1
   27   25   23   21   19   17   15   13   11    9    7    5    3    1
   29   27   25   23   21   19   17   15   13   11    9    7    5    3    1
   29   27   25   23   21   19   17   15   13   11    9    7    5    3    1
   29   27   25   23   21   19   17   15   13   11    9    7    5    3    1
pop_front test:
   27   25   23   21   19   17   15   13   11    9    7    5    3    1
   25   23   21   19   17   15   13   11    9    7    5    3    1
   23   21   19   17   15   13   11    9    7    5    3    1
   21   19   17   15   13   11    9    7    5    3    1
   19   17   15   13   11    9    7    5    3    1
   17   15   13   11    9    7    5    3    1
   15   13   11    9    7    5    3    1
   13   11    9    7    5    3    1
   11    9    7    5    3    1
    9    7    5    3    1
    7    5    3    1
    5    3    1
    3    1
    1
 

 

push_back test:

   20
   20   30
   20   30   40
   20   30   40   50
   20   30   40   50   60
   20   30   40   50   60   70
   20   30   40   50   60   70   80
   20   30   40   50   60   70   80   90
   20   30   40   50   60   70   80   90  100
   20   30   40   50   60   70   80   90  100  110
   20   30   40   50   60   70   80   90  100  110  120
   20   30   40   50   60   70   80   90  100  110  120  130
   20   30   40   50   60   70   80   90  100  110  120  130  140
   20   30   40   50   60   70   80   90  100  110  120  130  140  150
   20   30   40   50   60   70   80   90  100  110  120  130  140  150  160
   20   30   40   50   60   70   80   90  100  110  120  130  140  150  160
   20   30   40   50   60   70   80   90  100  110  120  130  140  150  160
pop_back test:
   20   30   40   50   60   70   80   90  100  110  120  130  140  150
   20   30   40   50   60   70   80   90  100  110  120  130  140
   20   30   40   50   60   70   80   90  100  110  120  130
   20   30   40   50   60   70   80   90  100  110  120
   20   30   40   50   60   70   80   90  100  110
   20   30   40   50   60   70   80   90  100
   20   30   40   50   60   70   80   90
   20   30   40   50   60   70   80
   20   30   40   50   60   70
   20   30   40   50   60
   20   30   40   50
   20   30   40
   20   30
   20
 


insert test:

   10
   20   10
   30   20   10
   40   30   20   10
   50   40   30   20   10
   60   50   40   30   20   10
   70   60   50   40   30   20   10
   80   70   60   50   40   30   20   10
   90   80   70   60   50   40   30   20   10
  100   90   80   70   60   50   40   30   20   10
  110  100   90   80   70   60   50   40   30   20   10
  120  110  100   90   80   70   60   50   40   30   20   10
  130  120  110  100   90   80   70   60   50   40   30   20   10
  140  130  120  110  100   90   80   70   60   50   40   30   20   10
  150  140  130  120  110  100   90   80   70   60   50   40   30   20   10
  150  140  130  120  110  100   90   80   70   60   50   40   30   20   10
  150  140  130  120  110  100   90   80   70   60   50   40   30   20   10
clear...

insert_after test:
 -99    1
 -99    2    1
 -99    3    2    1
 -99    4    3    2    1
 -99    5    4    3    2    1
 -99    6    5    4    3    2    1
 -99    7    6    5    4    3    2    1
 -99    8    7    6    5    4    3    2    1
 -99    9    8    7    6    5    4    3    2    1
 -99   10    9    8    7    6    5    4    3    2    1
 -99   11   10    9    8    7    6    5    4    3    2    1
 -99   12   11   10    9    8    7    6    5    4    3    2    1
 -99   13   12   11   10    9    8    7    6    5    4    3    2    1
 -99   14   13   12   11   10    9    8    7    6    5    4    3    2    1
 -99   15   14   13   12   11   10    9    8    7    6    5    4    3    2    1
 -99   15   14   13   12   11   10    9    8    7    6    5    4    3    2    1
 -99   15   14   13   12   11   10    9    8    7    6    5    4    3    2    1
clear...

find test:
   10   11   12   13   14   15   16    8    7    6    5    4    3    2    1
ifree: -1
idata: 14
====================
index    data    next
--------------------
    16    1
    8    3
    15    0
    7    5
    14    2
    6    7
    13    4
    5    9
    12    6
    4    11
    11    8
    3    13
    10    10
    2    15
    9    12
    1    -1
====================
   9 found at 14
   3 found at 11
 not found
   4 found at 9
   1 found at 15
  12 found at 8
 not found
  14 found at 4
 not found
  16 found at 0
   9 found at 14
 not found
 not found
 not found
   9 found at 14
  11 found at 10

find_prev test:
 not found
   6 found at 3's next.
 not found
 not found
   7 found at 1's next.
  12 found at 10's next.
 not found
 not found
   4 found at 7's next.
 not found
  13 found at 8's next.
 not found
   6 found at 3's next.
 not found
   7 found at 1's next.
 not found

find_prev and insert_after test:
    2    3    4    5    6    7    8
insert -4 to front of 8:   1    2    3    4    5    6    7   -4    8
insert -5 to front of 3:   1    2   -5    3    4    5    6    7   -4    8
insert -8 to front of 6:   1    2   -5    3    4    5   -8    6    7   -4    8

find and insert test:
    2    3    4    5    6    7    8
insert -2 to after of 3:   1    2    3   -2    4    5    6    7    8
insert -6 to after of 8:   1    2    3   -2    4    5    6    7    8   -6
insert -7 to after of 5:   1    2    3   -2    4    5   -7    6    7    8   -6
end of main().

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

日本一区二区三区国色天香| 欧美日韩中文字幕在线观看| 成人影院在线观看视频| 人妻无码视频一区二区三区| 男人在线观看视频| 久久久久久国产精品| 韩国av在线免费观看| 最近中文字幕在线mv视频在线| 毛片在线看片| 国产尤物精品| 9.1在线观看免费| 精品一区二区三区中文字幕视频| 国产福利亚洲| 亚洲精品一区二区三区四区高清| 精品国产鲁一鲁****| 亚洲综合影院| 亚洲三级电影全部在线观看高清| 日韩黄色三级在线观看| 蜜臀在线免费观看| 日韩精品欧美| 亚洲自拍中文字幕| 国产亚洲一区二区三区在线播放| 911精品产国品一二三产区| 伊人狠狠色j香婷婷综合| 国产精品麻豆一区| 一级做a爰片毛片| 最新日韩av在线| 蜜桃a∨噜噜一区二区三区| 国产厕所精品在线观看| 国产视频综合在线| 亚洲黄色性网站| 亚洲欧美日韩国产成人综合一二三区| 日韩国产欧美视频| 男女羞羞视频在线观看| 自拍偷拍视频亚洲| 男人的天堂av网| 日本精品一区二区三区高清 久久| 久久免费一区| 亚洲女色av| 一级黄色录像视频| 国内av在线播放| 无码人妻丰满熟妇奶水区码| 国产真人做爰毛片视频直播| 国产精品毛片a∨一区二区三区| 亚洲a在线播放| 天堂精品视频| 国产视频一区二区| 一区二区三区波多野结衣在线观看| 最新国产在线观看| 岛国精品在线| 成人免费黄色小视频| 麻豆精品一区二区| 久久免费国产精品1| 麻豆网址在线观看| yiren22亚洲综合伊人22| 欧美亚洲激情视频| 久草视频免费在线| 18在线观看的| 免费av观看网站| 欧美日韩免费一区二区三区视频| 亚洲成国产人片在线观看| 黄色www视频| 免费看的黄网站| 欧美影视一区二区三区| 91精品国产乱码| 国产成人免费xxxxxxxx| 色噜噜成人av在线| 99热精品在线观看| 浪潮色综合久久天堂| 国产伦理久久久| 一二三四在线观看免费高清中文在线观看| 欧美13一14另类| 日韩中文字幕欧美| 亚洲欧美综合久久久| 香港成人在线视频| 欧美亚洲综合视频| 亚洲国产精品va在看黑人| 538在线一区二区精品国产| 久久精品国产亚洲777| 精品久久成人| 中文字幕第一区二区| 国产高清视频在线| 成人黄色免费在线观看| www.男人天堂.com| 日韩精品福利网| 成人av男人的天堂| 欧美日韩网址| 国产精品久久久久久久电影| 伊人久久在线| 日日夜夜精品免费| 成人黄色片免费| 国产女精品视频网站免费| 日本在线视频www| 国产精品久久久久久久久电影网| 精品视频在线播放一区二区三区| 久草热视频在线观看| 国产欧美综合视频| 四虎影视在线播放| 免费三片在线播放| 黄色网络在线观看| 中文字幕永久在线不卡| 久久久久久69| 激情欧美成人久久综合小说| 亚洲日本韩国一区| 日本.亚洲电影| 在线免费观看av电影| 五月天综合在线| 欧美午夜性色大片在线观看| 视频在线99re| 国产一级性片| 国产欧美日韩精品一区二区免费| 国产精品三级网站| www.91视频.com| 欧美日韩视频免费看| 欧美性极品xxxx娇小| 成年人黄色在线观看| 绯色av一区| 黄色免费网站在线观看| jlzzjlzz亚洲女人18| 毛片一区二区三区四区| 美女又黄又免费| 双性尿奴穿贞c带憋尿| 国产视频在线观看一区二区三区| 伦理中文字幕亚洲| 日日噜噜夜夜狠狠久久波多野| 色狠狠桃花综合| 男女爱爱免费网站| 中文字幕制服诱惑| 国产三级国产精品国产专区50| 99久久er热在这里只有精品15| 丰满少妇一区二区三区| 久久精品99久久无色码中文字幕| 精品熟妇无码av免费久久| 亚洲精品亚洲人成人网在线播放| 亚洲欧美在线播放| 国产蜜臀97一区二区三区| 狠狠干天天干| 好吊妞国产欧美日韩免费观看网站| 国产富婆一区二区三区| 久久黄色网页| 男女猛烈无遮挡午夜视频| 欧美野外多人交3| 91麻豆精品国产91久久久久推荐资源| 老司机午夜精品视频| 9.1人成人免费视频网站| eeuss影院www影院入口| 亚洲精品中文字幕99999| 日本一区二区三区www| 国产黄网在线观看| 中文字幕在线导航| jizz.www| 国产美女三级无套内谢| 国产女人18水真多毛片18精品| 欧美色欧美亚洲另类二区| 一区二区小视频| 亚洲天堂黄色片| 香蕉久久免费电影| 成人自拍爱视频| 精品久久久久久亚洲综合网站| 国产精品一区在线观看| 久久精品国产精品| 色小说视频一区| 免费看av大片| 精品久久久久久最新网址| 欧美性受xxxx黒人xyx性爽| 日韩五码在线观看| 亚洲一本大道| 麻豆乱码国产一区二区三区| 99热这里只有精品7| 中文字幕一区二区三区在线播放| 正在播放亚洲| 91九色在线视频| 人妻激情偷乱频一区二区三区| 中文字幕亚洲一区在线观看| 亚欧精品视频一区二区三区| 精品人妻人人做人人爽夜夜爽| 国产精选在线| 在线精品国产| 一本一道久久a久久精品蜜桃| 国产91热爆ts人妖在线| 男人的天堂狠狠干| 韩日电影在线观看| 亚洲欧美国产制服动漫| aa亚洲婷婷| 欧美日韩一区二区三区四区五区| 热re91久久精品国99热蜜臀| 黄页视频在线免费观看| 69国产成人精品视频软件| 女同性互吃奶乳免费视频| 国产99久久久久久免费看农村| 91麻豆国产福利在线观看| 欧美精品久久久久久久免费| 久久精品国产99久久99久久久| 色婷婷久久综合中文久久蜜桃av| 日韩av片网站| 国产麻豆精品一区| 欧美日韩一区二区三区电影| 精品1区2区在线观看| 欧美日韩不卡一区| 一线天粉嫩在线播放| 欧美18免费视频| 最近2019中文字幕第三页视频| 亚洲国产小视频在线观看| 九九热在线视频播放| 黄片毛片在线看| av免费在线电影| 亚洲一区二区中文在线| 国产伦精品一区二区三毛| 性一交一乱一伧老太| 一区二区三区**美女毛片| 自拍偷拍中文字幕| 成年在线播放小视频| 99久热re在线精彩视频| 亚洲免费在线电影| 日本中文字幕在线一区| 国产精品对白一区二区三区| 男人的天堂一区二区| 福利资源在线久| 激情欧美一区| 国产伦精品一区二区三区视频网站| 一区二区三区视频在线观看免费| 国产裸体视频网站| 一插菊花综合| 中文字幕久久网| www.久久撸.com| 国产精品水嫩水嫩| 免费欧美一区| 成年人在线免费观看| 狠狠狠色丁香婷婷综合激情| 人妖粗暴刺激videos呻吟| 大黑人交xxx极品hd| 欧美日韩精品在线观看| 日日摸夜夜添一区| 亚洲四虎影院| jjzzjjzz欧美69巨大| 亚洲综合最新在线| 九九热精品视频在线观看| 精品一区2区三区| 久久综合久久色| 第一区第二区在线| 色屁屁影院www国产高清麻豆| 亚洲va综合va国产va中文| 综合婷婷亚洲小说| 欧美熟乱第一页| 亚洲成a人片777777久久| www狠狠操| av在线播放一区二区三区| 亚洲精品美女久久久久| 26uuu另类亚洲欧美日本老年| 波多野结衣电车| 亚洲欧美成人vr| 中文字幕亚洲一区二区三区| 中文字幕精品—区二区日日骚| 粉嫩粉嫩芽的虎白女18在线视频| 91av视频在线免费观看| 国内揄拍国内精品久久| 国产成人精品无码免费看夜聊软件| 久久综合久久99| 男男h黄动漫啪啪无遮挡软件| 国产九九精品视频| ccyy激情综合| 无码精品视频一区二区三区| 亚洲 欧美 日韩 在线| 亚洲国产一区二区三区四区| 国产真实乱对白精彩久久| 青草影院在线观看| 日本xxxxwww| 中文字幕av在线免费观看| 3atv在线一区二区三区| 国产伦理吴梦梦伦理| 成人激情在线播放| 天堂在线中文网官网| 欧美日韩免费观看一区二区三区| 在线观看高清av| 中文字幕一区av| 欧美日韩国产成人在线| 每日在线更新av| 欧美午夜精品免费| 国产精品一区专区欧美日韩| 国产日产欧美a一级在线| 国产成人av一区| bdsm精品捆绑chinese| 欧美激情久久久久| 欧美激情免费在线| 999精品视频在线观看播放| 中文字幕一区二区三区人妻在线视频| 99re在线观看视频| 黄色在线视频网址| 在线欧美视频| 91香蕉视频网| 日本一区视频在线| 麻豆亚洲一区| 免费观看黄色一级视频| 91chinesevideo永久地址| 欧美综合在线第二页| 99re热这里只有精品视频| 国产三级视频在线播放| 1024av视频| bl视频在线免费观看| 亚洲精品资源美女情侣酒店| 日韩大片在线永久免费观看网站| 精品肉辣文txt下载| 精品视频一二三| 亚洲欧美精品| 中文字幕在线观看2018| www.麻豆| 亚洲激情五月婷婷| 日韩欧美亚洲一二三区| 任你躁在线精品免费| 欧美一级片一区| 久久成人羞羞网站| 亚洲电影视频在线| 爱看av在线入口| 久久香蕉一区| 欧美精品123| 亚洲人免费短视频| 麻豆视频入口| 国产午夜精品一区二区理论影院| 99亚洲伊人久久精品影院红桃| 色老头视频在线观看| av国产精品| 日韩大胆人体| 国产免费一区二区视频| 午夜不卡av免费| 欧美一卡在线观看| 欧美大片一区二区三区| 成人免费一级片| 国产日韩中文在线中文字幕|