欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

打印菜單界面,用c語言實現(xiàn)二叉樹的基本操作

打印菜單界面,用c語言實現(xiàn)二叉樹的基本操作:

成都創(chuàng)新互聯(lián)公司專注于大箐山企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,購物商城網(wǎng)站建設(shè)。大箐山網(wǎng)站建設(shè)公司,為大箐山等地區(qū)提供建站服務(wù)。全流程按需規(guī)劃網(wǎng)站,專業(yè)設(shè)計,全程項目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)

其代碼原理和用c++實現(xiàn)一樣,請看本人上篇博客:二叉樹的先序、中序、后序遍歷等基本操作c++實現(xiàn),鏈接:http://yaoyaolx.blog.51cto.com/10732111/1783527

實現(xiàn)代碼:

#include <stdio.h>

#include <stdlib.h>

#define MAXSIZE 50

//定義二叉樹的二叉鏈表結(jié)構(gòu)

typedef struct Node

{

char data;

struct Node *LChild;

struct Node *RChild;

}BiTNode, *BiTree;

typedef struct

{

BiTree element[MAXSIZE];

int front;//隊頭

int rear;//隊尾

}SeqQueue;

//初始化隊列

void InitQueue(SeqQueue *Q)

{

Q->front = Q->rear = 0;

}

//入隊

int EnterQueue(SeqQueue *Q, BiTree bt)

{

if ((Q->rear + 1) % MAXSIZE == Q->front)

{

return 0;

}

else

{

Q->element[Q->rear] = bt;

Q->rear = (Q->rear + 1) % MAXSIZE;

return 1;

}

}

//出隊

int DeleteQueue(SeqQueue *Q, BiTree *bt)

{

if (Q->front == Q->rear)

{

return 0;

}

else

{

*bt = Q->element[Q->front];

Q->front = (Q->front + 1) % MAXSIZE;

return 1;

}

}

//判斷隊列是否為空

int IsEmpty(SeqQueue *Q)

{

if (Q->front == Q->rear)

{

return 1;

}

else

{

return 0;

}

}

//用拓展先序遍歷序列創(chuàng)建二叉鏈表

void CreateBiTree(BiTree *bt)

{

char ch;

ch = getchar();

if (ch == '\n')

{

return;

}

if (ch == '#')

{

*bt = NULL;

}

else

{

*bt = (BiTree)malloc(sizeof(BiTNode));

(*bt)->data = ch;

CreateBiTree(&((*bt)->LChild));

CreateBiTree(&((*bt)->RChild));

}

}

//先序遍歷輸出二叉樹的結(jié)點,根結(jié)點->左子樹->右子樹,root為指向二叉樹(或某一子樹)根結(jié)點的指針

void PreOrder(BiTree root)

{

if (root != NULL)

{

printf("%c  ", root->data);//訪問根結(jié)點

PreOrder(root->LChild);//遍歷左子樹

PreOrder(root->RChild);//遍歷右子樹

}

}

//中序遍歷輸出二叉樹的結(jié)點,左子樹->根結(jié)點->右子樹

void InOrder(BiTree root)

{

if (root != NULL)

{

InOrder(root->LChild);

printf("%c  ", root->data);

InOrder(root->RChild);

}

}

//中序非遞歸遍歷輸出二叉樹的結(jié)點

void InOrderNo(BiTree root)

{

int top = 0;

BiTree p = root;

BiTree s[MAXSIZE] = { NULL };

do {

while (p != NULL)

{

if (top > MAXSIZE)

{

return;

}

else

{

top++;

s[top] = p;

p = p->LChild;

}

}

if (top != 0)

{

p = s[top];

top--;

printf("%c  ", p->data);

p = p->RChild;

}

} while (p != NULL || top != 0);

}

//后序遍歷輸出二叉樹的結(jié)點,左子樹->右子樹->根結(jié)點

void PostOrder(BiTree root)

{

if (root != NULL)

{

PostOrder(root->LChild);

PostOrder(root->RChild);

printf("%c  ", root->data);

}

}

//桉樹狀打印二叉樹,逆中序

void PrintTree(BiTree root, int nLayer)

{

if (root == NULL)

{

return;

}

else

{

PrintTree(root->RChild, nLayer + 1);

for (int i = 0; i < nLayer; i++)

{

printf("   ");

}

printf("%c\n", root->data);

PrintTree(root->LChild, nLayer + 1);

}

}

//層序遍歷二叉樹

void LayerOrder(BiTree root)

{

SeqQueue Q;

BiTree p = NULL;

InitQueue(&Q);

if (root == NULL)

{

return;

}

else

{

EnterQueue(&Q, root);

while (!IsEmpty(&Q))

{

DeleteQueue(&Q, &p);

printf("%c  ", p->data);

if (p->LChild != NULL)

{

EnterQueue(&Q, p->LChild);

}

if (p->RChild != NULL)

{

EnterQueue(&Q, p->RChild);

}

}

return 1;

}

}

//求二叉樹的高度

int PostTreeDepth(BiTree root)

{

int hl = 0;

int hr = 0;

int max = 0;

if (root != NULL)

{

hl = PostTreeDepth(root->LChild);

hr = PostTreeDepth(root->RChild);

max = (hl > hr) ? hl : hr;

return max + 1;

}

else

{

return 0;

}

}

//二叉樹的結(jié)點個數(shù)

int RootCount(BiTree root)

{

int count = 1;

if (root != NULL)

{

count += (RootCount(root->LChild) + RootCount(root->RChild));

}

else

{

count = 0;

}

return count;

}

//二叉樹的葉子結(jié)點個數(shù)

int LeafCount(BiTree root)

{

int leafCount = 0;

if (root == NULL)

{

leafCount = 0;

}

else if ((root->LChild == NULL) && (root->RChild == NULL))

{

leafCount = 1;

}

else

{

leafCount = (LeafCount(root->LChild) + LeafCount(root->RChild));

}

return leafCount;

}

//交換二叉樹每個結(jié)點的左子樹和右子樹

void ChangeLeftRight(BiTree *bt)

{

if ((*bt)->LChild == NULL && (*bt)->RChild == NULL)

{

return;

}

else

{

BiTree tmp = (*bt)->LChild;

(*bt)->LChild = (*bt)->RChild;

(*bt)->RChild = tmp;

if ((*bt)->LChild != NULL)

{

ChangeLeftRight(&((*bt)->LChild));

}

if ((*bt)->RChild != NULL)

{

ChangeLeftRight(&((*bt)->RChild));

}

}

}

void maue()

{

printf("\n");

printf("   ☆☆☆☆★★★★★        歡迎使用本系統(tǒng)         ★★★★★☆☆☆☆\n");

printf("    ☆☆☆★★★★★     1、建立二叉樹的二叉鏈表     ★★★★★☆☆☆ \n");

printf("    ☆☆☆★★★★★     2、二叉樹的先序遞歸遍歷     ★★★★★☆☆☆ \n");

printf("    ☆☆☆★★★★★     3、二叉樹的中序遞歸遍歷     ★★★★★☆☆☆ \n");

printf("    ☆☆☆★★★★★  4、二叉樹的非遞歸中序遞歸遍歷  ★★★★★☆☆☆ \n");

printf("    ☆☆☆★★★★★     5、二叉樹的后序遞歸遍歷     ★★★★★☆☆☆ \n");

printf("    ☆☆☆★★★★★       6、樹狀打印此二叉樹       ★★★★★☆☆☆ \n");

printf("    ☆☆☆★★★★★       7、二叉樹的層序遍歷       ★★★★★☆☆☆ \n");

printf("    ☆☆☆★★★★★         8、二叉樹的高度         ★★★★★☆☆☆ \n");

printf("    ☆☆☆★★★★★       9、二叉樹的結(jié)點個數(shù)       ★★★★★☆☆☆ \n");

printf("    ☆☆☆★★★★★      10、二叉樹的葉子結(jié)點個數(shù)       ★★★★★☆☆☆ \n");

printf("    ☆☆☆★★★★★  11、交換二叉樹的左子樹和右子樹 ★★★★★☆☆☆ \n");

printf("    ☆☆☆★★★★★           0、退出系統(tǒng)           ★★★★★☆☆☆ \n");

printf("\n");

}

int main()

{

BiTree bt = NULL;

int number = 0;

do {

maue();

printf("請選擇您要進行的本系統(tǒng)的功能: > ");

scanf_s("%d", &number);

switch (number)

{

case 1:

printf("請輸入二叉樹的擴展先序遍歷序列:> ");

getchar();

CreateBiTree(&bt);

printf("\n");

break;

case 2:

printf("此二叉樹的先序遍歷序列為:> ");

PreOrder(bt);

printf("\n");

break;

case 3:

printf("此二叉樹的中序遍歷序列為:> ");

InOrder(bt);

printf("\n");

break;

case 4:

printf("此二叉樹的非遞歸中序遍歷序列為:> ");

InOrderNo(bt);

printf("\n");

break;

case 5:

printf("此二叉樹的后序遍歷序列為:> ");

PostOrder(bt);

printf("\n");

break;

case 6:

printf("樹狀打印此二叉樹為:>\n ");

PrintTree(bt, 2);

printf("\n");

break;

case 7:

printf("層次遍歷印此二叉樹為:> ");

LayerOrder(bt);

printf("\n");

break;

case 8:

printf("此二叉樹的高度為:> ");

int heigh = PostTreeDepth(bt);

printf("heigh = %d\n", heigh);

break;

case 9:

printf("此二叉樹的結(jié)點個數(shù)為:> ");

int rootCount = RootCount(bt);

printf("rootCount = %d\n", rootCount);

break;

case 10:

printf("此二叉樹的葉子結(jié)點個數(shù)為:> ");

int leafCount = LeafCount(bt);

printf("leafCount = %d\n", leafCount);

break;

case 11:

printf("交換二叉樹每個結(jié)點的左子樹和右子樹后,二叉樹變?yōu)椋ㄏ刃虮闅v):>\n ");

ChangeLeftRight(&bt);

PreOrder(bt);

printf("\n");

break;

case 0:

printf("感謝您使用本系統(tǒng),歡迎您的再次使用!\n");

break;

default:

printf("請輸入正確的功能號:\n");

break;

}

} while (number);

system("pause");

return 0;

}

運行結(jié)果:

   ☆☆☆☆★★★★★        歡迎使用本系統(tǒng)         ★★★★★☆☆☆☆

    ☆☆☆★★★★★     1、建立二叉樹的二叉鏈表     ★★★★★☆☆☆

    ☆☆☆★★★★★     2、二叉樹的先序遞歸遍歷     ★★★★★☆☆☆

    ☆☆☆★★★★★     3、二叉樹的中序遞歸遍歷     ★★★★★☆☆☆

    ☆☆☆★★★★★  4、二叉樹的非遞歸中序遞歸遍歷  ★★★★★☆☆☆

    ☆☆☆★★★★★     5、二叉樹的后序遞歸遍歷     ★★★★★☆☆☆

    ☆☆☆★★★★★       6、樹狀打印此二叉樹       ★★★★★☆☆☆

    ☆☆☆★★★★★       7、二叉樹的層序遍歷       ★★★★★☆☆☆

    ☆☆☆★★★★★         8、二叉樹的高度         ★★★★★☆☆☆

    ☆☆☆★★★★★       9、二叉樹的結(jié)點個數(shù)       ★★★★★☆☆☆

    ☆☆☆★★★★★      10、二叉樹的葉子結(jié)點個數(shù)       ★★★★★☆☆☆

    ☆☆☆★★★★★  11、交換二叉樹的左子樹和右子樹 ★★★★★☆☆☆

    ☆☆☆★★★★★           0、退出系統(tǒng)           ★★★★★☆☆☆

請選擇您要進行的本系統(tǒng)的功能: > 1

請輸入二叉樹的擴展先序遍歷序列:> 123##4##56###

   ☆☆☆☆★★★★★        歡迎使用本系統(tǒng)         ★★★★★☆☆☆☆

    ☆☆☆★★★★★     1、建立二叉樹的二叉鏈表     ★★★★★☆☆☆

    ☆☆☆★★★★★     2、二叉樹的先序遞歸遍歷     ★★★★★☆☆☆

    ☆☆☆★★★★★     3、二叉樹的中序遞歸遍歷     ★★★★★☆☆☆

    ☆☆☆★★★★★  4、二叉樹的非遞歸中序遞歸遍歷  ★★★★★☆☆☆

    ☆☆☆★★★★★     5、二叉樹的后序遞歸遍歷     ★★★★★☆☆☆

    ☆☆☆★★★★★       6、樹狀打印此二叉樹       ★★★★★☆☆☆

    ☆☆☆★★★★★       7、二叉樹的層序遍歷       ★★★★★☆☆☆

    ☆☆☆★★★★★         8、二叉樹的高度         ★★★★★☆☆☆

    ☆☆☆★★★★★       9、二叉樹的結(jié)點個數(shù)       ★★★★★☆☆☆

    ☆☆☆★★★★★      10、二叉樹的葉子結(jié)點個數(shù)       ★★★★★☆☆☆

    ☆☆☆★★★★★  11、交換二叉樹的左子樹和右子樹 ★★★★★☆☆☆

    ☆☆☆★★★★★           0、退出系統(tǒng)           ★★★★★☆☆☆

請選擇您要進行的本系統(tǒng)的功能: > 6

樹狀打印此二叉樹為:>

          5

            6

      1

            4

         2

            3

   ☆☆☆☆★★★★★        歡迎使用本系統(tǒng)         ★★★★★☆☆☆☆

    ☆☆☆★★★★★     1、建立二叉樹的二叉鏈表     ★★★★★☆☆☆

    ☆☆☆★★★★★     2、二叉樹的先序遞歸遍歷     ★★★★★☆☆☆

    ☆☆☆★★★★★     3、二叉樹的中序遞歸遍歷     ★★★★★☆☆☆

    ☆☆☆★★★★★  4、二叉樹的非遞歸中序遞歸遍歷  ★★★★★☆☆☆

    ☆☆☆★★★★★     5、二叉樹的后序遞歸遍歷     ★★★★★☆☆☆

    ☆☆☆★★★★★       6、樹狀打印此二叉樹       ★★★★★☆☆☆

    ☆☆☆★★★★★       7、二叉樹的層序遍歷       ★★★★★☆☆☆

    ☆☆☆★★★★★         8、二叉樹的高度         ★★★★★☆☆☆

    ☆☆☆★★★★★       9、二叉樹的結(jié)點個數(shù)       ★★★★★☆☆☆

    ☆☆☆★★★★★      10、二叉樹的葉子結(jié)點個數(shù)       ★★★★★☆☆☆

    ☆☆☆★★★★★  11、交換二叉樹的左子樹和右子樹 ★★★★★☆☆☆

    ☆☆☆★★★★★           0、退出系統(tǒng)           ★★★★★☆☆☆

請選擇您要進行的本系統(tǒng)的功能: > 2

此二叉樹的先序遍歷序列為:> 1  2  3  4  5  6

   ☆☆☆☆★★★★★        歡迎使用本系統(tǒng)         ★★★★★☆☆☆☆

    ☆☆☆★★★★★     1、建立二叉樹的二叉鏈表     ★★★★★☆☆☆

    ☆☆☆★★★★★     2、二叉樹的先序遞歸遍歷     ★★★★★☆☆☆

    ☆☆☆★★★★★     3、二叉樹的中序遞歸遍歷     ★★★★★☆☆☆

    ☆☆☆★★★★★  4、二叉樹的非遞歸中序遞歸遍歷  ★★★★★☆☆☆

    ☆☆☆★★★★★     5、二叉樹的后序遞歸遍歷     ★★★★★☆☆☆

    ☆☆☆★★★★★       6、樹狀打印此二叉樹       ★★★★★☆☆☆

    ☆☆☆★★★★★       7、二叉樹的層序遍歷       ★★★★★☆☆☆

    ☆☆☆★★★★★         8、二叉樹的高度         ★★★★★☆☆☆

    ☆☆☆★★★★★       9、二叉樹的結(jié)點個數(shù)       ★★★★★☆☆☆

    ☆☆☆★★★★★      10、二叉樹的葉子結(jié)點個數(shù)       ★★★★★☆☆☆

    ☆☆☆★★★★★  11、交換二叉樹的左子樹和右子樹 ★★★★★☆☆☆

    ☆☆☆★★★★★           0、退出系統(tǒng)           ★★★★★☆☆☆

請選擇您要進行的本系統(tǒng)的功能: > 3

此二叉樹的中序遍歷序列為:> 3  2  4  1  6  5

   ☆☆☆☆★★★★★        歡迎使用本系統(tǒng)         ★★★★★☆☆☆☆

    ☆☆☆★★★★★     1、建立二叉樹的二叉鏈表     ★★★★★☆☆☆

    ☆☆☆★★★★★     2、二叉樹的先序遞歸遍歷     ★★★★★☆☆☆

    ☆☆☆★★★★★     3、二叉樹的中序遞歸遍歷     ★★★★★☆☆☆

    ☆☆☆★★★★★  4、二叉樹的非遞歸中序遞歸遍歷  ★★★★★☆☆☆

    ☆☆☆★★★★★     5、二叉樹的后序遞歸遍歷     ★★★★★☆☆☆

    ☆☆☆★★★★★       6、樹狀打印此二叉樹       ★★★★★☆☆☆

    ☆☆☆★★★★★       7、二叉樹的層序遍歷       ★★★★★☆☆☆

    ☆☆☆★★★★★         8、二叉樹的高度         ★★★★★☆☆☆

    ☆☆☆★★★★★       9、二叉樹的結(jié)點個數(shù)       ★★★★★☆☆☆

    ☆☆☆★★★★★      10、二叉樹的葉子結(jié)點個數(shù)       ★★★★★☆☆☆

    ☆☆☆★★★★★  11、交換二叉樹的左子樹和右子樹 ★★★★★☆☆☆

    ☆☆☆★★★★★           0、退出系統(tǒng)           ★★★★★☆☆☆

請選擇您要進行的本系統(tǒng)的功能: > 11

交換二叉樹每個結(jié)點的左子樹和右子樹后,二叉樹變?yōu)椋ㄏ刃虮闅v):>

 1  5  6  2  4  3

   ☆☆☆☆★★★★★        歡迎使用本系統(tǒng)         ★★★★★☆☆☆☆

    ☆☆☆★★★★★     1、建立二叉樹的二叉鏈表     ★★★★★☆☆☆

    ☆☆☆★★★★★     2、二叉樹的先序遞歸遍歷     ★★★★★☆☆☆

    ☆☆☆★★★★★     3、二叉樹的中序遞歸遍歷     ★★★★★☆☆☆

    ☆☆☆★★★★★  4、二叉樹的非遞歸中序遞歸遍歷  ★★★★★☆☆☆

    ☆☆☆★★★★★     5、二叉樹的后序遞歸遍歷     ★★★★★☆☆☆

    ☆☆☆★★★★★       6、樹狀打印此二叉樹       ★★★★★☆☆☆

    ☆☆☆★★★★★       7、二叉樹的層序遍歷       ★★★★★☆☆☆

    ☆☆☆★★★★★         8、二叉樹的高度         ★★★★★☆☆☆

    ☆☆☆★★★★★       9、二叉樹的結(jié)點個數(shù)       ★★★★★☆☆☆

    ☆☆☆★★★★★      10、二叉樹的葉子結(jié)點個數(shù)       ★★★★★☆☆☆

    ☆☆☆★★★★★  11、交換二叉樹的左子樹和右子樹 ★★★★★☆☆☆

    ☆☆☆★★★★★           0、退出系統(tǒng)           ★★★★★☆☆☆

請選擇您要進行的本系統(tǒng)的功能: > 9

此二叉樹的結(jié)點個數(shù)為:> rootCount = 6

   ☆☆☆☆★★★★★        歡迎使用本系統(tǒng)         ★★★★★☆☆☆☆

    ☆☆☆★★★★★     1、建立二叉樹的二叉鏈表     ★★★★★☆☆☆

    ☆☆☆★★★★★     2、二叉樹的先序遞歸遍歷     ★★★★★☆☆☆

    ☆☆☆★★★★★     3、二叉樹的中序遞歸遍歷     ★★★★★☆☆☆

    ☆☆☆★★★★★  4、二叉樹的非遞歸中序遞歸遍歷  ★★★★★☆☆☆

    ☆☆☆★★★★★     5、二叉樹的后序遞歸遍歷     ★★★★★☆☆☆

    ☆☆☆★★★★★       6、樹狀打印此二叉樹       ★★★★★☆☆☆

    ☆☆☆★★★★★       7、二叉樹的層序遍歷       ★★★★★☆☆☆

    ☆☆☆★★★★★         8、二叉樹的高度         ★★★★★☆☆☆

    ☆☆☆★★★★★       9、二叉樹的結(jié)點個數(shù)       ★★★★★☆☆☆

    ☆☆☆★★★★★      10、二叉樹的葉子結(jié)點個數(shù)       ★★★★★☆☆☆

    ☆☆☆★★★★★  11、交換二叉樹的左子樹和右子樹 ★★★★★☆☆☆

    ☆☆☆★★★★★           0、退出系統(tǒng)           ★★★★★☆☆☆

請選擇您要進行的本系統(tǒng)的功能: > 8

此二叉樹的高度為:> heigh = 3

   ☆☆☆☆★★★★★        歡迎使用本系統(tǒng)         ★★★★★☆☆☆☆

    ☆☆☆★★★★★     1、建立二叉樹的二叉鏈表     ★★★★★☆☆☆

    ☆☆☆★★★★★     2、二叉樹的先序遞歸遍歷     ★★★★★☆☆☆

    ☆☆☆★★★★★     3、二叉樹的中序遞歸遍歷     ★★★★★☆☆☆

    ☆☆☆★★★★★  4、二叉樹的非遞歸中序遞歸遍歷  ★★★★★☆☆☆

    ☆☆☆★★★★★     5、二叉樹的后序遞歸遍歷     ★★★★★☆☆☆

    ☆☆☆★★★★★       6、樹狀打印此二叉樹       ★★★★★☆☆☆

    ☆☆☆★★★★★       7、二叉樹的層序遍歷       ★★★★★☆☆☆

    ☆☆☆★★★★★         8、二叉樹的高度         ★★★★★☆☆☆

    ☆☆☆★★★★★       9、二叉樹的結(jié)點個數(shù)       ★★★★★☆☆☆

    ☆☆☆★★★★★      10、二叉樹的葉子結(jié)點個數(shù)       ★★★★★☆☆☆

    ☆☆☆★★★★★  11、交換二叉樹的左子樹和右子樹 ★★★★★☆☆☆

    ☆☆☆★★★★★           0、退出系統(tǒng)           ★★★★★☆☆☆

請選擇您要進行的本系統(tǒng)的功能: > 0

感謝您使用本系統(tǒng),歡迎您的再次使用!

請按任意鍵繼續(xù). . .

新聞標(biāo)題:打印菜單界面,用c語言實現(xiàn)二叉樹的基本操作
URL網(wǎng)址:http://chinadenli.net/article48/jsgoep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、手機網(wǎng)站建設(shè)、域名注冊、虛擬主機、微信小程序、小程序開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計
日韩国产亚洲欧美激情| 欧美大黄片在线免费观看| 国产不卡视频一区在线| 久久国产亚洲精品成人| 老熟妇乱视频一区二区| 五月激情五月天综合网| 中文字幕日韩欧美亚洲午夜| 日韩女优视频国产一区| 好吊视频一区二区在线| 欧美自拍偷自拍亚洲精品| 中日韩美女黄色一级片| 国产熟女一区二区精品视频| 国产日韩在线一二三区| 91播色在线免费播放| 欧美激情区一区二区三区| 青青久久亚洲婷婷中文网| 熟女乱一区二区三区丝袜| 成人午夜爽爽爽免费视频| 一区二区三区四区亚洲专区| 午夜视频免费观看成人| 国产精品超碰在线观看| 91久久精品中文内射| 国产精品视频久久一区| 亚洲欧美日韩精品永久| 久久热中文字幕在线视频| 精品国产亚洲区久久露脸| 欧美激情一区二区亚洲专区| 日韩中文字幕视频在线高清版| 大胆裸体写真一区二区| 国产精品香蕉免费手机视频| 九九热精彩视频在线播放| 中文字幕91在线观看| 亚洲一级二级三级精品| 五月综合婷婷在线伊人| 国产亚洲神马午夜福利| 五月天丁香婷婷一区二区| 欧美一区二区三区不卡高清视| 国产又粗又长又爽又猛的视频| 国产永久免费高清在线精品| 黄色av尤物白丝在线播放网址| 99久只有精品免费视频播放|