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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? main.cpp

?? 根據人工智能中雙向搜索的方法對8數碼的問題進行解決
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
#include <iostream>
#define SqureEdge 3
using namespace std;
struct NumNodeInfo
{
	char NumEle[SqureEdge][SqureEdge];//由數字1、2、3、4、5、6、7、8、0構成,0代表空值
	NumNodeInfo *pChildNode[4];
	bool isActive;//是否激活
};
//棧用于存儲最終搜尋到的路徑中的節點指針
struct NodeStack
{
	NumNodeInfo *pNeededNode;
	NodeStack *pNext;
};
/************************************************************************/
/* 函數:初始化節點指針                                                 */
/* 參數:OriPosx,OriPoy為原節點的0的坐標,DesPosx,DesPosy                */
/*       為目標位置0的坐標,pOriNode為原節點指針,pDesNode為目標節點指針  */
/************************************************************************/
void InitNode(int OriPosx,int OriPosy,int DesPosx,int DesPosy,NumNodeInfo *pOriNode,NumNodeInfo *pDesNode)
{
	char temp;
	int i,j;
	for(i=0;i<4;i++)
		pDesNode->pChildNode[i]=NULL;
	pDesNode->isActive=true;
	for(i=0;i<SqureEdge;i++)
		for(j=0;j<SqureEdge;j++)
			pDesNode->NumEle[i][j]=pOriNode->NumEle[i][j];
	temp=pDesNode->NumEle[DesPosx][DesPosy];
	pDesNode->NumEle[DesPosx][DesPosy]=pDesNode->NumEle[OriPosx][OriPosy];
	pDesNode->NumEle[OriPosx][OriPosy]=temp;
}
/************************************************************************/
/* 函數:判斷兩個節點的內容是否一致                                     */
/* 參數:*/
/* 返回值:如果一致返回true,否則返回false                              */
/************************************************************************/
bool isEqualNode(NumNodeInfo *pNodeA,NumNodeInfo *pNodeB)
{
	int i,j;
	for(i=0;i<SqureEdge;i++)
		for(j=0;j<SqureEdge;j++)
			if(pNodeA->NumEle[i][j]!=pNodeB->NumEle[i][j])
				return false;
	return true;
}

/************************************************************************/
/* 函數:檢測所要增加的節點是否已出現過                                 */
/* 參數:pTestNode為被檢測的節點指針,pTreeParNode為樹結構的父節點      */
/* 返回值:如果已出現過返回true,否則返回false                          */
/************************************************************************/
bool isExistedNode(NumNodeInfo *pTestNode,NumNodeInfo *pTreeParNode)
{
	if(pTreeParNode==NULL)
		return false;
	if(isEqualNode(pTestNode,pTreeParNode))
		return true;
	else
		if((pTreeParNode->pChildNode[0]&&isExistedNode(pTestNode,pTreeParNode->pChildNode[0]))||(pTreeParNode->pChildNode[1]&&isExistedNode(pTestNode,pTreeParNode->pChildNode[1]))
			||(pTreeParNode->pChildNode[2]&&isExistedNode(pTestNode,pTreeParNode->pChildNode[2]))||(pTreeParNode->pChildNode[3]&&isExistedNode(pTestNode,pTreeParNode->pChildNode[3])))
			return true;
		else
			return false;
}


/************************************************************************/
/* 函數:構建當前節點的子節點                                           */
/* 參數:CurNode 為當前節點指針,ParNode為但錢節點的父節點指針,         */
/*       pSelfTreeRootNode為當前樹的根節點,pNeighborTreeRootNode為同步的*/
/*       鄰樹的根節點                                                   */
/* 返回值:如果所增加的節點在鄰樹中存在,則返回共同存在的2個節點中的一個 */
/*         否則返回NULL													*/
/************************************************************************/
NumNodeInfo* BuildChildNode(NumNodeInfo *pCurNode,NumNodeInfo *pParNode,NumNodeInfo *pSelfTreeRootNode,NumNodeInfo *pNeighborTreeRootNode)
{
	char temp[SqureEdge][SqureEdge];
	int i,j;
	int posx,posy;
	for(i=0;i<SqureEdge;i++)
		for(j=0;j<SqureEdge;j++)
			if(pCurNode->NumEle[i][j]=='0')
			{
				posx=i;
				posy=j;
			}
	NumNodeInfo *pChildTemp;
	if(pParNode!=NULL)
	{
		for(i=0;i<SqureEdge;i++)
			for(j=0;j<SqureEdge;j++)
				temp[i][j]=pParNode->NumEle[i][j];
		if (posx==0&&posy==0)
		{
			if(temp[posx][posy+1]=='0')
			{
				pChildTemp=new NumNodeInfo;
				InitNode(posx,posy,posx+1,posy,pCurNode,pChildTemp);
				if(isExistedNode(pChildTemp,pSelfTreeRootNode))
					delete pChildTemp;
				else
				{
					pCurNode->pChildNode[0]=pChildTemp;
					if(isExistedNode(pChildTemp,pNeighborTreeRootNode))
						return pChildTemp;
				}
				if(pCurNode->pChildNode[0]==NULL)
					pCurNode->isActive=false;
				return NULL;
			}
			if(temp[posx+1][posy]=='0')
			{
				pChildTemp=new NumNodeInfo;
				InitNode(posx,posy,posx,posy+1,pCurNode,pChildTemp);
				if(isExistedNode(pChildTemp,pSelfTreeRootNode))
					delete pChildTemp;
				else
				{
					pCurNode->pChildNode[0]=pChildTemp;
					if(isExistedNode(pChildTemp,pNeighborTreeRootNode))
						return pChildTemp;
				}
				if(pCurNode->pChildNode[0]==NULL)
					pCurNode->isActive=false;
				return NULL;
			}
		}
		if (posx==0&&posy==SqureEdge-1)
		{
			if(temp[posx][posy-1]=='0')
			{
				pChildTemp=new NumNodeInfo;
				InitNode(posx,posy,posx+1,posy,pCurNode,pChildTemp);
				if(isExistedNode(pChildTemp,pSelfTreeRootNode))
					delete pChildTemp;
				else
				{
					pCurNode->pChildNode[0]=pChildTemp;
					if(isExistedNode(pChildTemp,pNeighborTreeRootNode))
						return pChildTemp;
				}
				if(pCurNode->pChildNode[0]==NULL)
					pCurNode->isActive=false;
				return NULL;
			}
			if(temp[posx+1][posy]=='0')
			{
				pChildTemp=new NumNodeInfo;
				InitNode(posx,posy,posx,posy-1,pCurNode,pChildTemp);
				if(isExistedNode(pChildTemp,pSelfTreeRootNode))
					delete pChildTemp;
				else
				{
					pCurNode->pChildNode[0]=pChildTemp;
					if(isExistedNode(pChildTemp,pNeighborTreeRootNode))
						return pChildTemp;
				}
				if(pCurNode->pChildNode[0]==NULL)
					pCurNode->isActive=false;
				return NULL;
			}
		}
		if (posx==SqureEdge-1&&posy==SqureEdge-1)
		{
			if(temp[posx-1][posy]=='0')
			{
				pChildTemp=new NumNodeInfo;
				InitNode(posx,posy,posx,posy-1,pCurNode,pChildTemp);
				if(isExistedNode(pChildTemp,pSelfTreeRootNode))
					delete pChildTemp;
				else
				{
					pCurNode->pChildNode[0]=pChildTemp;
					if(isExistedNode(pChildTemp,pNeighborTreeRootNode))
						return pChildTemp;
				}
				if(pCurNode->pChildNode[0]==NULL)
					pCurNode->isActive=false;
				return NULL;
			}
			if(temp[posx][posy-1]=='0')
			{
				pChildTemp=new NumNodeInfo;
				InitNode(posx,posy,posx-1,posy,pCurNode,pChildTemp);
				if(isExistedNode(pChildTemp,pSelfTreeRootNode))
					delete pChildTemp;
				else
				{
					pCurNode->pChildNode[0]=pChildTemp;
					if(isExistedNode(pChildTemp,pNeighborTreeRootNode))
						return pChildTemp;
				}
				if(pCurNode->pChildNode[0]==NULL)
					pCurNode->isActive=false;
				return NULL;
			}
		}

		if (posx==SqureEdge-1&&posy==0)
		{
			if(temp[posx][posy+1]=='0')
			{
				pChildTemp=new NumNodeInfo;
				InitNode(posx,posy,posx-1,posy,pCurNode,pChildTemp);
				if(isExistedNode(pChildTemp,pSelfTreeRootNode))
					delete pChildTemp;
				else
				{
					pCurNode->pChildNode[0]=pChildTemp;
					if(isExistedNode(pChildTemp,pNeighborTreeRootNode))
						return pChildTemp;
				}
				if(pCurNode->pChildNode[0]==NULL)
					pCurNode->isActive=false;
				return NULL;
			}
			if(temp[posx-1][posy]=='0')
			{
				pChildTemp=new NumNodeInfo;
				InitNode(posx,posy,posx,posy+1,pCurNode,pChildTemp);
				if(isExistedNode(pChildTemp,pSelfTreeRootNode))
					delete pChildTemp;
				else
				{
					pCurNode->pChildNode[0]=pChildTemp;
					if(isExistedNode(pChildTemp,pNeighborTreeRootNode))
						return pChildTemp;
				}
				if(pCurNode->pChildNode[0]==NULL)
					pCurNode->isActive=false;
				return NULL;
			}
		}


		if(posx==0)
		{
			if(temp[posx][posy-1]=='0')
			{
				pChildTemp=new NumNodeInfo;
				InitNode(posx,posy,posx,posy+1,pCurNode,pChildTemp);
				if(isExistedNode(pChildTemp,pSelfTreeRootNode))
					delete pChildTemp;
				else
				{
					pCurNode->pChildNode[0]=pChildTemp;
					if(isExistedNode(pChildTemp,pNeighborTreeRootNode))
						return pChildTemp;
				}
				pChildTemp=new NumNodeInfo;
				InitNode(posx,posy,posx+1,posy,pCurNode,pChildTemp);
				if(isExistedNode(pChildTemp,pSelfTreeRootNode))
					delete pChildTemp;
				else
				{
					pCurNode->pChildNode[1]=pChildTemp;
					if(isExistedNode(pChildTemp,pNeighborTreeRootNode))
						return pChildTemp;
				}
				if(pCurNode->pChildNode[0]==NULL&&pCurNode->pChildNode[1]==NULL)
					pCurNode->isActive=false;
				return NULL;
			}
			if(temp[posx+1][posy]=='0')
			{
				pChildTemp=new NumNodeInfo;
				InitNode(posx,posy,posx,posy-1,pCurNode,pChildTemp);
				if(isExistedNode(pChildTemp,pSelfTreeRootNode))
					delete pChildTemp;
				else
				{
					pCurNode->pChildNode[0]=pChildTemp;
					if(isExistedNode(pChildTemp,pNeighborTreeRootNode))
						return pChildTemp;
				}
				pChildTemp=new NumNodeInfo;
				InitNode(posx,posy,posx,posy+1,pCurNode,pChildTemp);
				if(isExistedNode(pChildTemp,pSelfTreeRootNode))
					delete pChildTemp;
				else
				{
					pCurNode->pChildNode[1]=pChildTemp;
					if(isExistedNode(pChildTemp,pNeighborTreeRootNode))
						return pChildTemp;
				}
				if(pCurNode->pChildNode[0]==NULL&&pCurNode->pChildNode[1]==NULL)
					pCurNode->isActive=false;
				return NULL;
			}
			if(temp[posx][posy+1]=='0')
			{
				pChildTemp=new NumNodeInfo;
				InitNode(posx,posy,posx,posy-1,pCurNode,pChildTemp);
				if(isExistedNode(pChildTemp,pSelfTreeRootNode))
					delete pChildTemp;
				else
				{
					pCurNode->pChildNode[0]=pChildTemp;
					if(isExistedNode(pChildTemp,pNeighborTreeRootNode))
						return pChildTemp;
				}
				pChildTemp=new NumNodeInfo;
				InitNode(posx,posy,posx+1,posy,pCurNode,pChildTemp);
				if(isExistedNode(pChildTemp,pSelfTreeRootNode))
					delete pChildTemp;
				else
				{
					pCurNode->pChildNode[1]=pChildTemp;
					if(isExistedNode(pChildTemp,pNeighborTreeRootNode))
						return pChildTemp;
				}
				if(pCurNode->pChildNode[0]==NULL&&pCurNode->pChildNode[1]==NULL)
					pCurNode->isActive=false;
				return NULL;
			}
		}
		if(posy==0)
		{
			if(temp[posx-1][posy]=='0')
			{
				pChildTemp=new NumNodeInfo;
				InitNode(posx,posy,posx,posy+1,pCurNode,pChildTemp);
				if(isExistedNode(pChildTemp,pSelfTreeRootNode))
					delete pChildTemp;
				else
				{
					pCurNode->pChildNode[0]=pChildTemp;
					if(isExistedNode(pChildTemp,pNeighborTreeRootNode))
						return pChildTemp;
				}
				pChildTemp=new NumNodeInfo;
				InitNode(posx,posy,posx+1,posy,pCurNode,pChildTemp);
				if(isExistedNode(pChildTemp,pSelfTreeRootNode))
					delete pChildTemp;
				else
				{
					pCurNode->pChildNode[1]=pChildTemp;
					if(isExistedNode(pChildTemp,pNeighborTreeRootNode))
						return pChildTemp;
				}
				if(pCurNode->pChildNode[0]==NULL&&pCurNode->pChildNode[1]==NULL)
					pCurNode->isActive=false;
				return NULL;
			}
			if(temp[posx][posy+1]=='0')
			{
				pChildTemp=new NumNodeInfo;
				InitNode(posx,posy,posx-1,posy,pCurNode,pChildTemp);
				if(isExistedNode(pChildTemp,pSelfTreeRootNode))
					delete pChildTemp;
				else
				{
					pCurNode->pChildNode[0]=pChildTemp;
					if(isExistedNode(pChildTemp,pNeighborTreeRootNode))
						return pChildTemp;
				}
				pChildTemp=new NumNodeInfo;
				InitNode(posx,posy,posx+1,posy,pCurNode,pChildTemp);
				if(isExistedNode(pChildTemp,pSelfTreeRootNode))
					delete pChildTemp;
				else
				{
					pCurNode->pChildNode[1]=pChildTemp;
					if(isExistedNode(pChildTemp,pNeighborTreeRootNode))
						return pChildTemp;
				}
				if(pCurNode->pChildNode[0]==NULL&&pCurNode->pChildNode[1]==NULL)
					pCurNode->isActive=false;
				return NULL;
			}
			if(temp[posx+1][posy]=='0')
			{
				pChildTemp=new NumNodeInfo;
				InitNode(posx,posy,posx-1,posy,pCurNode,pChildTemp);
				if(isExistedNode(pChildTemp,pSelfTreeRootNode))
					delete pChildTemp;
				else
				{
					pCurNode->pChildNode[0]=pChildTemp;
					if(isExistedNode(pChildTemp,pNeighborTreeRootNode))
						return pChildTemp;
				}
				pChildTemp=new NumNodeInfo;
				InitNode(posx,posy,posx,posy+1,pCurNode,pChildTemp);
				if(isExistedNode(pChildTemp,pSelfTreeRootNode))
					delete pChildTemp;
				else
				{
					pCurNode->pChildNode[1]=pChildTemp;
					if(isExistedNode(pChildTemp,pNeighborTreeRootNode))
						return pChildTemp;
				}
				if(pCurNode->pChildNode[0]==NULL&&pCurNode->pChildNode[1]==NULL)
					pCurNode->isActive=false;
				return NULL;
			}
		}
		if(posx==SqureEdge-1)
		{
			if(temp[posx][posy-1]=='0')
			{
				pChildTemp=new NumNodeInfo;
				InitNode(posx,posy,posx-1,posy,pCurNode,pChildTemp);
				if(isExistedNode(pChildTemp,pSelfTreeRootNode))
					delete pChildTemp;
				else
				{
					pCurNode->pChildNode[0]=pChildTemp;
					if(isExistedNode(pChildTemp,pNeighborTreeRootNode))
						return pChildTemp;
				}
				pChildTemp=new NumNodeInfo;
				InitNode(posx,posy,posx,posy+1,pCurNode,pChildTemp);
				if(isExistedNode(pChildTemp,pSelfTreeRootNode))
					delete pChildTemp;
				else
				{
					pCurNode->pChildNode[1]=pChildTemp;
					if(isExistedNode(pChildTemp,pNeighborTreeRootNode))
						return pChildTemp;
				}
				if(pCurNode->pChildNode[0]==NULL&&pCurNode->pChildNode[1]==NULL)
					pCurNode->isActive=false;
				return NULL;
			}
			if(temp[posx-1][posy]=='0')
			{
				pChildTemp=new NumNodeInfo;
				InitNode(posx,posy,posx,posy-1,pCurNode,pChildTemp);
				if(isExistedNode(pChildTemp,pSelfTreeRootNode))
					delete pChildTemp;
				else
				{
					pCurNode->pChildNode[0]=pChildTemp;
					if(isExistedNode(pChildTemp,pNeighborTreeRootNode))
						return pChildTemp;
				}
				pChildTemp=new NumNodeInfo;
				InitNode(posx,posy,posx,posy+1,pCurNode,pChildTemp);
				if(isExistedNode(pChildTemp,pSelfTreeRootNode))
					delete pChildTemp;
				else
				{
					pCurNode->pChildNode[1]=pChildTemp;
					if(isExistedNode(pChildTemp,pNeighborTreeRootNode))
						return pChildTemp;
				}
				if(pCurNode->pChildNode[0]==NULL&&pCurNode->pChildNode[1]==NULL)
					pCurNode->isActive=false;
				return NULL;
			}
			if(temp[posx][posy+1]=='0')
			{
				pChildTemp=new NumNodeInfo;
				InitNode(posx,posy,posx,posy-1,pCurNode,pChildTemp);
				if(isExistedNode(pChildTemp,pSelfTreeRootNode))
					delete pChildTemp;
				else
				{
					pCurNode->pChildNode[0]=pChildTemp;
					if(isExistedNode(pChildTemp,pNeighborTreeRootNode))
						return pChildTemp;
				}
				pChildTemp=new NumNodeInfo;
				InitNode(posx,posy,posx-1,posy,pCurNode,pChildTemp);
				if(isExistedNode(pChildTemp,pSelfTreeRootNode))
					delete pChildTemp;
				else
				{
					pCurNode->pChildNode[1]=pChildTemp;
					if(isExistedNode(pChildTemp,pNeighborTreeRootNode))
						return pChildTemp;
				}
				if(pCurNode->pChildNode[0]==NULL&&pCurNode->pChildNode[1]==NULL)
					pCurNode->isActive=false;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
自拍偷拍国产精品| 精品在线视频一区| 亚洲成人激情av| 国产一区二区三区黄视频| 欧美亚洲一区三区| 久久精品人人做| 亚洲福中文字幕伊人影院| 国产乱码精品1区2区3区| 欧美午夜精品久久久| 欧美韩国日本综合| 黄色小说综合网站| 欧美精品色综合| 亚洲宅男天堂在线观看无病毒| 欧美精品在线观看播放| 亚洲色图制服丝袜| 丁香激情综合五月| 久久午夜电影网| 日产精品久久久久久久性色| 在线国产亚洲欧美| 亚洲伦理在线精品| 成人禁用看黄a在线| 精品区一区二区| 日韩国产欧美在线视频| 91久久精品一区二区三区| 国产精品久久福利| 国产成人午夜99999| 欧美精品一区二区三区在线 | 亚洲国产综合在线| 欧美日韩激情在线| 99久久综合99久久综合网站| 精品国产99国产精品| 日韩精品福利网| 欧美视频中文一区二区三区在线观看| 中文字幕中文字幕一区二区| 国产一区 二区| 精品国产123| 国产真实乱偷精品视频免| 亚洲精品一线二线三线无人区| 美女免费视频一区| 欧美成人精品福利| 国产成人综合亚洲91猫咪| 国产日韩精品一区二区三区在线| 国产综合色视频| 国产亚洲人成网站| 成人蜜臀av电影| 中文字幕中文字幕一区| 在线看一区二区| 日韩国产高清影视| 韩国成人精品a∨在线观看| 日韩激情一二三区| 成人黄动漫网站免费app| 99re视频精品| 一区二区在线观看不卡| 欧美视频在线播放| 日韩综合一区二区| 久久久久亚洲蜜桃| 97久久人人超碰| 亚洲综合色成人| 91精品国产综合久久精品图片| 久久精品国产一区二区三 | 尤物视频一区二区| 欧美一区二区三区婷婷月色| 国产一区二区美女诱惑| 综合中文字幕亚洲| 欧美男生操女生| 国产成人日日夜夜| 亚洲一区二区综合| 精品处破学生在线二十三| 成人污污视频在线观看| 亚洲午夜av在线| 丁香激情综合国产| 久久精品久久久精品美女| 麻豆精品一区二区三区| 国产欧美精品一区二区色综合朱莉| 成人性生交大片免费看中文| 日韩一区二区影院| 美女被吸乳得到大胸91| 国产精品久久久久久久久动漫 | 欧美日韩精品综合在线| 久久成人精品无人区| 中文字幕一区二区在线观看| 欧美一区二区三区日韩视频| 国产激情视频一区二区三区欧美| 亚洲黄色片在线观看| 久久久久久久免费视频了| 欧美日韩精品一二三区| 99精品欧美一区二区三区小说| 国产亚洲一区二区三区在线观看| 三级久久三级久久| 高清不卡在线观看av| 亚洲美女视频一区| 成av人片一区二区| 精品制服美女丁香| 亚洲国产精品一区二区久久恐怖片| 久久精品欧美一区二区三区麻豆| 欧美日韩卡一卡二| 91福利在线免费观看| 成人免费av网站| 国产老女人精品毛片久久| 青青草97国产精品免费观看无弹窗版| 亚洲免费高清视频在线| 中文字幕欧美三区| 337p粉嫩大胆色噜噜噜噜亚洲| 欧美日韩午夜在线| 欧美在线观看视频在线| 91在线视频播放地址| 国产999精品久久久久久绿帽| 日韩不卡免费视频| 五月婷婷久久丁香| 一二三区精品福利视频| 欧美aⅴ一区二区三区视频| 91麻豆国产香蕉久久精品| 成人一区二区三区视频| 国产美女精品一区二区三区| 蜜桃视频在线观看一区二区| 天涯成人国产亚洲精品一区av| 一区二区三区欧美视频| 一区二区三区在线观看欧美| 最新日韩在线视频| 亚洲色图视频网| 一区二区三区影院| 亚洲色图一区二区| 亚洲一级二级三级| 天堂久久久久va久久久久| 午夜精品久久一牛影视| 日本亚洲欧美天堂免费| 毛片一区二区三区| 国产一区二区在线影院| 国产a级毛片一区| 99久久99久久综合| 一本色道a无线码一区v| 欧美系列亚洲系列| 在线播放一区二区三区| 精品国产麻豆免费人成网站| 久久久三级国产网站| 亚洲欧洲在线观看av| 亚洲欧美一区二区在线观看| 一区二区三区在线视频免费观看| 午夜精品aaa| 紧缚奴在线一区二区三区| 国产1区2区3区精品美女| 一本色道久久综合精品竹菊| 3d动漫精品啪啪| 国产网站一区二区| 亚洲欧美偷拍卡通变态| 免费观看在线色综合| 国产一区二区三区最好精华液| 成人美女视频在线看| 在线精品视频免费播放| 欧美成人在线直播| 亚洲欧洲精品成人久久奇米网| 亚洲自拍偷拍九九九| 国产最新精品免费| 91亚洲精品久久久蜜桃网站| 91麻豆精品国产无毒不卡在线观看| 337p日本欧洲亚洲大胆精品 | 国产视频一区不卡| 亚洲乱码中文字幕综合| 国产一区二区三区精品欧美日韩一区二区三区 | 国产一区二区导航在线播放| 99视频精品在线| 日韩欧美黄色影院| 一区二区三区日韩在线观看| 美女一区二区久久| 色综合激情五月| 精品不卡在线视频| 亚洲国产视频在线| 国产精品18久久久久久久网站| 欧美午夜精品久久久久久孕妇| 久久久99久久| 日韩电影网1区2区| 91麻豆国产自产在线观看| 精品第一国产综合精品aⅴ| 亚洲与欧洲av电影| 成人av电影在线网| 2023国产精品自拍| 日韩电影在线一区二区三区| 成人爱爱电影网址| 久久新电视剧免费观看| 日韩av在线发布| 欧洲日韩一区二区三区| 国产精品你懂的在线欣赏| 国模无码大尺度一区二区三区| 欧美日韩精品一区二区| 一区二区高清免费观看影视大全| 国产iv一区二区三区| 精品国产乱码久久久久久久久| 午夜伦欧美伦电影理论片| 在线视频中文字幕一区二区| 国产精品久线观看视频| 国产成人综合网站| 久久九九久久九九| 国产伦精品一区二区三区视频青涩| 91精品国产综合久久久久久漫画| 亚洲一区视频在线观看视频| 91精品1区2区| 亚洲一区二区综合| 欧美三级在线播放| 亚洲18女电影在线观看| 欧美色视频在线|