亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? bbs.txt

?? 幾種數(shù)據(jù)結(jié)構(gòu)算法的C程序?qū)崿F(xiàn)
?? TXT
字號(hào):
各位,新來(lái)乍到,小生有禮了,獻(xiàn)拙作幾篇,還望多多指教。
QQ:289185927
算法參考教材為嚴(yán)蔚敏C語(yǔ)言版的數(shù)據(jù)結(jié)構(gòu)。
以下全部程序均在VC++6.0中調(diào)試通過(guò)。

排序:
將代碼中的129到132行加上或去掉注釋標(biāo)記可實(shí)現(xiàn)不同的排序算法。
Record中的info域存儲(chǔ)元素編號(hào)以測(cè)試算法穩(wěn)定性。

#include "stdio.h"
#define MAX 40

typedef struct Record
{
 int key;
 int info;
}Record;

typedef struct SqList
{
 Record r[MAX+1];
 int length;
}SqList;

int Partition(SqList *L, int low, int high)
{
 int pivotkey=(*L).r[low].key;
 (*L).r[0]=(*L).r[low];
 while(low<high)
 {
  while(low<high&&(*L).r[high].key>=pivotkey)--high;
  (*L).r[low]=(*L).r[high];
  while(low<high&&(*L).r[low].key<=pivotkey)++low;
  (*L).r[high]=(*L).r[low];
 }
 (*L).r[low]=(*L).r[0];
 return low;
}

void QuickSort(SqList *L, int low, int high)
{
 int pivot;
 if(low<high)
 {
  pivot=Partition(L,low,high);
  QuickSort(L,low,pivot-1);
  QuickSort(L,pivot+1,high);
 }
}


void BubbleSort(SqList *L)
{
 int i,j,change;
 for(i=(*L).length,change=1;i>1&&change;--i)
 {
 change=0;
 for(j=1;j<i;++j)
 {
  if((*L).r[j].key>(*L).r[j+1].key)
  {
   (*L).r[0]=(*L).r[j];
   (*L).r[j]=(*L).r[j+1];
   (*L).r[j+1]=(*L).r[0];
   change=1;
  } 
 }
 }
}


void SelectSort(SqList *L)
{
 int i,j,k;
 for(i=1;i<(*L).length;i++)
 {
 k=i;
 for(j=i+1;j<=(*L).length;j++)
  if((*L).r[j].key<(*L).r[k].key) k=j;
 if(k!=i){(*L).r[0]=(*L).r[k];(*L).r[k]=(*L).r[i];(*L).r[i]=(*L).r[0];}
 }
}


void InsertSort(SqList *L)      /*教材P265算法10.1*/
{
 int i,j;
 for(i=2;i<=(*L).length;i++)
 {
 if((*L).r[i].key<(*L).r[i-1].key)
 {
  (*L).r[0]=(*L).r[i];(*L).r[i]=(*L).r[i-1];
  for(j=i-2;j>0&&(*L).r[j].key>(*L).r[0].key;j--)
   (*L).r[j+1]=(*L).r[j];
  (*L).r[j+1]=(*L).r[0];
 }
 }
}


void Print(SqList L)
{
 int i;
 printf("Number:");
 for(i=1;i<=L.length;i++)
  printf("%4d",L.r[i].info);
 printf("\n");
 printf("  Elem:");
 for(i=1;i<=L.length;i++)
  printf("%4d",L.r[i].key);
}


void create(SqList *L)
{
 int i;
 while((*L).length<MAX)
 {
  scanf("%d",&i);
  if(i==-1) break;
  (*L).r[++(*L).length].key=i;
 }
}

main()
{
 int i,low,high;
 SqList L;
 L.length=0;
 printf("Input the elem data of SqList:\n");
 create(&L);
 for(i=1;i<=L.length;i++)
  L.r[i].info=i;
 Print(L);
 printf("\n");
 printf("Now, the SqList will be sorted\n");
 low=1;  high=L.length;
 InsertSort(&L);
 /*SelectSort(&L);*/
 /*BubbleSort(&L);*/
 /*QuickSort(&L,low,high);*/
 Print(L);
 printf("\n");
}


堆排序:教材P282算法10.10,10.11

#include "stdio.h"
#define MAX 20

typedef struct Record
{
 int key;
 int info;
}Record;

typedef struct SqList
{
 Record r[MAX+1];
 int length;
}SqList;

void create(SqList *L)
{
 int i;
 while((*L).length<MAX)
 {
  scanf("%d",&i);
  if(i==-1) break;
  (*L).r[++(*L).length].key=i;
 }
}


void HeapAdjust(SqList *L, int s, int m)
{
 int j; Record rc;
 rc=(*L).r[s];
 for(j=2*s;j<=m;j*=2)
 {
 if(j<m&&(*L).r[j].key<(*L).r[j+1].key) ++j;
 if(rc.key>=(*L).r[j].key) break;
 (*L).r[s]=(*L).r[j]; s=j;
 }
 (*L).r[s]=rc;
}


void HeapSort(SqList *L)
{
 int i;Record temp;
 for(i=(*L).length/2;i>=1;--i)
 HeapAdjust(L,i,(*L).length);
 for(i=(*L).length;i>1;--i)
 {
 temp=(*L).r[1];(*L).r[1]=(*L).r[i];(*L).r[i]=temp;
 HeapAdjust(L,1,i-1);
 }
}


void Print(SqList L)
{
 int i;
 printf("Number:");
 for(i=1;i<=L.length;i++)
  printf("%4d",L.r[i].info);
 printf("\n");
 printf("  Elem:");
 for(i=1;i<=L.length;i++)
  printf("%4d",L.r[i].key);
}


main()
{
 int i;
 SqList L;
 L.length=0;
 printf("Input the data of the list ending with -1:\n");
 create(&L);
 for(i=1;i<=L.length;i++)
  L.r[i].info=i;
 Print(L);
 printf("\nNow the list will be heap sorted:\n");
 HeapSort(&L);
 Print(L);
 printf("\n");
}


圖的建立及深廣度優(yōu)先遍歷:(用鄰接表)

#include "stdio.h"
#include "stdlib.h"
#include "malloc.h"
#define Null 0
#define MAX 20

typedef struct ArcNode
{
 int adjvex;
 int weight;
 struct ArcNode *nextarc;
}ArcNode,*AdjList;

typedef struct Graph
{
 AdjList elem[MAX+1];
 int vexnum;
 int arcnum;
 int GraphKind;
}Graph;

/*對(duì)列定義及相關(guān)操作*/

typedef struct Queue
{
 int elem[MAX];
 int front,rear;
}Queue;

int visited[MAX+1];

void initQueue(Queue *Q)
{
 (*Q).front=(*Q).rear=0;
}

int QueueEmpty(Queue Q)
{
 if(Q.front==Q.rear) return 1;
 else return 0;
}

int EnQueue(Queue *Q, int v)
{
 (*Q).elem[(*Q).rear]=v;
 (*Q).rear=((*Q).rear+1)%MAX;
 return v;
}

int DeQueue(Queue *Q, int *v)
{
 *v=(*Q).elem[(*Q).front];
 (*Q).front=((*Q).front+1)%MAX;
 return (*v);
}


void create(Graph *G)
{
 int i, start, end;     AdjList p;
 for(i=0;i<=MAX;i++)
  (*G).elem[i]=Null;
 for(i=1;i<=(*G).arcnum;i++)
 {
 /*輸入弧的起止頂點(diǎn)*/
  scanf("%d,%d",&start,&end);
  p=(AdjList)malloc(sizeof(ArcNode));
  p->adjvex=end;
  p->nextarc=(*G).elem[start];
  (*G).elem[start]=p;
  if((*G).GraphKind==0)
  {
   p=(AdjList)malloc(sizeof(ArcNode));
   p->adjvex=start;
   p->nextarc=(*G).elem[end];
   (*G).elem[end]=p;
  }
 }
}

int NextAdjVex(Graph G, int v, int w)
{
 AdjList p;
 for(p=G.elem[v];p->adjvex!=w;p=p->nextarc);
 if(p->nextarc==Null) return 0;
 else return (p->nextarc->adjvex);
}

int FirstAdjVex(Graph G, int v)
{
 if(!G.elem[v]) return 0;
 else return G.elem[v]->adjvex;
}

void DFS(Graph G, int v)
{
 int w;
 printf("v%d ",v);   visited[v]=1;
 for(w=FirstAdjVex(G,v);w;w=NextAdjVex(G,v,w))
  if(!visited[w]) DFS(G,w);
}

void DFSTraverse(Graph G)
{
 int v;
 for(v=1;v<=G.vexnum;v++)
  visited[v]=0;
 for(v=1;v<=G.vexnum;v++)
  if(!visited[v]) DFS(G,v);
}

void BFS(Graph G)
{
 int v,w;
 Queue Q;
 initQueue(&Q);
 for(v=1;v<=G.vexnum;v++)
  visited[v]=0;
 for(v=1;v<=G.vexnum;v++)
 {
  printf("v%d ",v);   visited[v]=1;
  EnQueue(&Q,v);
  while(!QueueEmpty(Q))
  {
   DeQueue(&Q,&v);
   for(w=FirstAdjVex(G,v);w;w=NextAdjVex(G,v,w))
    if(!visited[w]){printf("v%d ",w);visited[w]=1;EnQueue(&Q,w);}
  }
 }
}

void printAdjList(Graph G)
{
 int i;     AdjList p;
 for(i=1;i<=G.vexnum;i++)
 {
  printf("v%d: ",i);
  if(!(G.elem[i])) {printf("\n\n"); continue;}
  else{
       for(p=G.elem[i];p;p=p->nextarc)
  printf("%d ",p->adjvex);
       printf("\n\n");
      }
 }
}

main()
{
 Graph G;
 printf("Please input the number of vex, arc and GraphKind:");   
 /*輸入圖的頂點(diǎn)數(shù),弧數(shù)及圖的類型0:無(wú)向,1:有向。*/
 scanf("%d,%d,%d",&G.vexnum,&G.arcnum,&G.GraphKind);
 printf("Input the arc of the Graph:\n");
 create(&G);
 printf("\n\n");
 printAdjList(G);
 printf("\n\n");
 printf("DFS Traverse:\n");
 DFSTraverse(G);
 printf("\n");
 printf("BFSTraverse:\n");
 BFS(G);
 printf("\n");
}

/*教材P182算法7.12拓?fù)渑判?/

#include "stdio.h"
#include "stdlib.h"
#include "malloc.h"
#define Null 0
#define MAX 20

typedef struct ArcNode
{
 int adjvex;
 int weight;
 struct ArcNode *nextarc;
}ArcNode,*AdjList;

typedef struct Graph
{
 AdjList elem[MAX+1];
 int vexnum;
 int arcnum;
 int GraphKind;
}Graph;


typedef struct Stack
{
 int s[MAX];
 int top;
}Stack;

void initStack(Stack *s)
{
 (*s).top=0;
}

int Push(Stack *s, int e)
{
 if((*s).top>=MAX) return 0;
 else (*s).s[(*s).top++]=e;
}

int Pop(Stack *s, int *e)
{
 if((*s).top<=0) return 0;
 else *e=(*s).s[--(*s).top];
}

int StackEmpty(Stack s)
{
 if(s.top==0)return 1;
 else return 0;
}


void create(Graph *G)
{
 int i, start, end;     AdjList p;
 for(i=0;i<=MAX;i++)
  (*G).elem[i]=Null;
 for(i=1;i<=(*G).arcnum;i++)
 {
  scanf("%d,%d",&start,&end);
  p=(AdjList)malloc(sizeof(ArcNode));
  p->adjvex=end;
  p->nextarc=(*G).elem[start];
  (*G).elem[start]=p;
  if((*G).GraphKind==0)
  {
   p=(AdjList)malloc(sizeof(ArcNode));
   p->adjvex=start;
   p->nextarc=(*G).elem[end];
   (*G).elem[end]=p;
  }
 }
}


int TopoSort(Graph G)
{
 int i, count, indegree[MAX+1];
 AdjList p; Stack S;
 for(i=1;i<=G.vexnum;i++)
  indegree[i]=0;
 initStack(&S);
 for(i=1;i<=G.vexnum;i++)
  for(p=G.elem[i];p;p=p->nextarc)
   ++indegree[p->adjvex];
 for(i=1;i<=G.vexnum;i++)
  if(!indegree[i]) Push(&S,i);
 count=0;
 while(!StackEmpty(S))
 {
 Pop(&S,&i);
 printf("v%d ",i);++count;
 for(p=G.elem[i];p;p=p->nextarc)
  if(!(--indegree[p->adjvex])) Push(&S,p->adjvex);
 }
 if(count<G.vexnum) return 0;
 else return 1;
}


main()
{
 Graph G;
 printf("Please input the number of vex, arc and GraphKind:");
 scanf("%d,%d,%d",&G.vexnum,&G.arcnum,&G.GraphKind);
 create(&G);
 printf("The outcome of TopoSort is:\n");
 TopoSort(G);
}


漢諾塔程序:程序執(zhí)行后會(huì)生成hannoi.txt文件其中記錄了移動(dòng)n個(gè)盤子的步驟

#include "stdio.h"


move(char a,char c,FILE **fp,int *count)
{
 (*count)++;
 printf("%6d:%c-->%c\n",*count,a,c);
 fprintf(*fp,"%6d:%c-->%c\n",*count,a,c);
}


hanoi(int n, char a, char b, char c, FILE **fp, int *count)
{
 if(n==1) move(a,c,fp,count);
 else
 {
  hanoi(n-1,a,c,b,fp,count);
  move(a,c,fp,count);
  hanoi(n-1,b,a,c,fp,count);
 }
}


main()
{
 int n,count=0;   /*count用來(lái)記錄移動(dòng)次數(shù)*/
 FILE *fp;
 fp=fopen("hanoi.txt","w");
 printf("Input the number of disk:");
 scanf("%d",&n);
 fprintf(fp,"%d disks hanoi tower:\n",n);
 hanoi(n,'A','B','C',&fp,&count);
 fclose(fp);
}


鏈表:

/*帶頭結(jié)點(diǎn)單鏈表逆置*/

#include "stdio.h"
#include "stdlib.h"
#define Null 0

typedef struct LNode
{
 int data;
 struct LNode *next;
}LNode,*Linklist;

void Creat(Linklist *L)
{
 int i;
 Linklist p,q;
 (*L)=(Linklist)malloc(sizeof(LNode));
 (*L)->data=-1;(*L)->next=Null;
 p=*L;
 scanf("%d",&i);
 while(i!=-1)
 {
 q=(Linklist)malloc(sizeof(LNode));
 q->data=i;q->next=Null;
 p->next=q;
 p=q;
 scanf("%d",&i);
 }
}


void Reverse(Linklist *L)
{
 Linklist p=(*L)->next,q;
 (*L)->next=Null;
 while(p)
 {
 q=p->next;
 p->next=(*L)->next;
 (*L)->next=p;
 p=q;
 }
}


void Print(Linklist L)
{
 Linklist p=L->next;
 while(p)
 {
 printf("%d ",p->data);
 p=p->next;
 }
}


main()
{
 Linklist L;
 printf("Input the data of L ending with -1:\n");
 Creat(&L);
 printf("\nThe original list is:\n");
 Print(L);
 printf("\nNow the list will be reversed:\n");
 Reverse(&L);
 Print(L);
}

有序鏈表的合并:
La,Lb為兩個(gè)元素按遞增有序排列的鏈表,將其合并到Lc元素仍遞增有序。

#include "stdio.h"
#include "stdlib.h"
#define Null 0

typedef struct LNode
{
 int data;
 struct LNode *next;
}LNode,*Linklist;

void Creat(Linklist *L)
{
 int i;
 Linklist p,q;
 (*L)=(Linklist)malloc(sizeof(LNode));
 (*L)->data=-1;(*L)->next=Null;
 p=*L;
 scanf("%d",&i);
 while(i!=-1)
 {
 q=(Linklist)malloc(sizeof(LNode));
 q->data=i;q->next=Null;
 p->next=q;
 p=q;
 scanf("%d",&i);
 }
}


void Merge(Linklist La, Linklist Lb, Linklist *Lc)
{
 Linklist pa=La->next,pb=Lb->next,pc;
 *Lc=(Linklist)malloc(sizeof(LNode));
 (*Lc)->data=-1;(*Lc)->next=Null;
 pc=*Lc;
 while(pa&&pb)
 {
 if(pa->data<pb->data)
 {
  pc->next=pa;
  pc=pa;
  pa=pa->next;
 }
 else
 {
  pc->next=pb;
  pc=pb;
  pb=pb->next;
 }
 }
 if(pa) pc->next=pa;
 else pc->next=pb;
}


void Print(Linklist L)
{
 Linklist p=L->next;
 while(p)
 {
 printf("%d ",p->data);
 p=p->next;
 }
}


main()
{
 Linklist La,Lb,Lc;
 /*輸入La,Lb的元素,注意應(yīng)按遞增有序*/
 printf("Input the data of La:\n");
 Creat(&La);
 printf("Input the data of Lb:\n");
 Creat(&Lb);
 printf("\nLa:");
 Print(La);
 printf("\nLb:");
 Print(Lb);
 printf("\nMerge La and Lb to Lc:\n");
 Merge(La,Lb,&Lc);
 Print(Lc);
 printf("\n");
}


La,Lb為兩個(gè)元素按遞增有序排列的鏈表,將其合并到Lc元素遞減有序。

#include "stdio.h"
#include "stdlib.h"
#include "malloc.h"
#define Null 0

typedef struct LNode
{
 int data;
 struct LNode *next;
}LNode,*Linklist;

void Creat(Linklist *L)
{
 int i;
 Linklist p,q;
 (*L)=(Linklist)malloc(sizeof(LNode));
 (*L)->data=-1;(*L)->next=Null;
 p=*L;
 scanf("%d",&i);
 while(i!=-1)
 {
 q=(Linklist)malloc(sizeof(LNode));
 q->data=i;q->next=Null;
 p->next=q;
 p=q;
 scanf("%d",&i);
 }
}


void Merge(Linklist La, Linklist Lb, Linklist *Lc)
{
 Linklist pa=La->next,pb=Lb->next,p;
 *Lc=(Linklist)malloc(sizeof(LNode));
 (*Lc)->data=-1;(*Lc)->next=Null;
 while(pa&&pb)
 {
 if(pa->data<pb->data)
 {
  p=pa->next;
  pa->next=(*Lc)->next;
  (*Lc)->next=pa;
  pa=p;
 }
 else
 {
  p=pb->next;
  pb->next=(*Lc)->next;
  (*Lc)->next=pb;
  pb=p;
 }
 }
 while(pa)
 {
 p=pa->next;
 pa->next=(*Lc)->next;
 (*Lc)->next=pa;
 pa=p;
 }
 while(pb)
 {
 p=pb->next;
 pb->next=(*Lc)->next;
 (*Lc)->next=pb;
 pb=p;
 }
}


void Print(Linklist L)
{
 Linklist p=L->next;
 while(p)
 {
 printf("%d ",p->data);
 p=p->next;
 }
}


main()
{
 Linklist La,Lb,Lc;
 printf("Input the data of La:\n");
 Creat(&La);
 printf("Input the data of Lb:\n");
 Creat(&Lb);
 printf("\nLa:");
 Print(La);
 printf("\nLb:");
 Print(Lb);
 printf("\nMerge La and Lb to Lc:\n");
 Merge(La,Lb,&Lc);
 Print(Lc);
 printf("\n");
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美日韩综合| 一级特黄大欧美久久久| 色av成人天堂桃色av| 免费欧美在线视频| 亚洲免费在线观看| 久久久99久久精品欧美| 欧美男人的天堂一二区| 丁香婷婷深情五月亚洲| 蜜桃视频在线观看一区二区| 综合色中文字幕| 久久香蕉国产线看观看99| 在线一区二区视频| av网站免费线看精品| 精品一二三四区| 丝袜亚洲另类丝袜在线| 亚洲精品一卡二卡| 中文子幕无线码一区tr| 精品1区2区在线观看| 欧美精品vⅰdeose4hd| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 欧美经典一区二区| 5月丁香婷婷综合| 欧美午夜一区二区| 91影视在线播放| 高清成人免费视频| 国产精品综合二区| 激情六月婷婷综合| 激情综合色综合久久| 日产欧产美韩系列久久99| 一区二区欧美在线观看| 一区二区三区在线观看网站| 中文字幕在线观看一区二区| 国产精品日日摸夜夜摸av| 国产日本欧美一区二区| 久久久九九九九| 国产亚洲福利社区一区| 国产日韩影视精品| 国产情人综合久久777777| www国产精品av| 精品成人一区二区三区四区| 日韩免费性生活视频播放| 日韩午夜在线观看视频| 日韩午夜在线观看| 久久这里只有精品6| 欧美精品一区二区三区蜜桃视频 | 精品一区二区三区视频在线观看| 视频一区二区中文字幕| 三级欧美韩日大片在线看| 丝袜国产日韩另类美女| 蜜臀av性久久久久av蜜臀妖精| 免费高清成人在线| 国产一区不卡在线| jlzzjlzz欧美大全| 91福利精品视频| 欧美精品第一页| 精品动漫一区二区三区在线观看| 久久婷婷国产综合国色天香| 久久精品亚洲一区二区三区浴池| 日本一区二区三区视频视频| 自拍偷拍国产精品| 亚洲国产裸拍裸体视频在线观看乱了 | 一区二区三区中文免费| 亚洲电影一级黄| 久久99精品久久只有精品| 国产精品亚洲视频| 99精品热视频| 91麻豆精品国产91久久久更新时间| 日韩写真欧美这视频| 国产午夜精品一区二区| 亚洲三级免费观看| 男人的天堂久久精品| 国产精品亚洲一区二区三区在线| 不卡的av电影| 欧美日韩国产123区| 久久亚区不卡日本| 亚洲激情综合网| 蜜桃91丨九色丨蝌蚪91桃色| 国产999精品久久| 欧美在线一二三四区| 精品国产不卡一区二区三区| 国产精品久久久久aaaa樱花| 婷婷久久综合九色综合伊人色| 国产精品夜夜爽| 欧美日韩在线免费视频| 久久午夜国产精品| 亚洲大片一区二区三区| 国产成人精品免费看| 欧美色综合网站| 中文字幕二三区不卡| 日本午夜一区二区| 91在线小视频| 久久精品欧美一区二区三区麻豆| 亚洲一区在线观看免费观看电影高清 | 成人18精品视频| 91精品综合久久久久久| 亚洲日本电影在线| 激情深爱一区二区| 欧美日韩国产电影| 国产精品麻豆网站| 国产真实乱对白精彩久久| 在线视频欧美精品| 国产日韩av一区二区| 奇米一区二区三区av| 91视频免费播放| 久久午夜电影网| 免费人成精品欧美精品| 欧美丝袜第三区| 国产精品国产精品国产专区不片| 经典一区二区三区| 欧美日韩在线观看一区二区| 亚洲天堂免费看| 国产美女精品在线| 日韩久久免费av| 丝瓜av网站精品一区二区| 色狠狠色噜噜噜综合网| 国产精品久久久久久久久免费樱桃| 久久66热偷产精品| 欧美一区午夜精品| 午夜精品影院在线观看| 在线观看欧美精品| 亚洲美女偷拍久久| 91一区二区三区在线观看| 欧美极品少妇xxxxⅹ高跟鞋| 激情六月婷婷综合| 精品电影一区二区三区| 美国精品在线观看| 91精选在线观看| 日本一区中文字幕| 欧美一区二区女人| 日韩av在线发布| 欧美疯狂做受xxxx富婆| 天天综合网 天天综合色| 欧美在线不卡视频| 亚洲成人免费看| 欧美另类久久久品| 亚洲成人www| 91精品国产美女浴室洗澡无遮挡| 午夜欧美电影在线观看| 欧美日韩国产精选| 日韩电影免费一区| 日韩视频在线你懂得| 老司机精品视频一区二区三区| 日韩一区二区视频在线观看| 蜜臀久久久久久久| 亚洲精品一区二区三区蜜桃下载| 美国一区二区三区在线播放| 日韩欧美资源站| 狠狠久久亚洲欧美| 国产婷婷色一区二区三区| 粉嫩一区二区三区在线看| 国产精品久久综合| 91国产丝袜在线播放| 午夜精品一区二区三区免费视频| 这里只有精品99re| 国产一区二区免费看| 国产欧美一区二区三区沐欲| a级高清视频欧美日韩| 亚洲精品第1页| 91精品国产品国语在线不卡| 韩日精品视频一区| 1024成人网色www| 欧美丝袜自拍制服另类| 老司机精品视频导航| 国产精品丝袜久久久久久app| 91在线精品一区二区| 午夜精品一区二区三区免费视频| 91精品国产一区二区三区香蕉| 国内精品久久久久影院薰衣草| 国产精品美女久久久久久久久久久 | 久久亚洲精品小早川怜子| 成人三级在线视频| 亚洲尤物视频在线| 日韩精品一区二| 94-欧美-setu| 蜜桃精品在线观看| 中文字幕一区二区三区不卡 | 欧美精品v国产精品v日韩精品| 国产自产视频一区二区三区| 亚洲欧洲日本在线| 日韩欧美在线影院| 91婷婷韩国欧美一区二区| 日本大胆欧美人术艺术动态| 国产亚洲制服色| 欧美日韩一区小说| 床上的激情91.| 秋霞av亚洲一区二区三| 国产精品毛片大码女人| 日韩一区二区免费在线观看| 北条麻妃一区二区三区| 青草国产精品久久久久久| 亚洲欧洲无码一区二区三区| 日韩一区二区免费视频| 色婷婷av一区二区三区软件 | 久久久久成人黄色影片| 欧美日韩在线一区二区| 国产+成+人+亚洲欧洲自线| 日韩电影在线观看网站| 中文字幕字幕中文在线中不卡视频| 日韩情涩欧美日韩视频| 色综合天天视频在线观看|