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

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

?? main.cpp

?? 根據(jù)人工智能中雙向搜索的方法對(duì)8數(shù)碼的問題進(jìn)行解決
?? CPP
?? 第 1 頁 / 共 3 頁
字號(hào):
#include <iostream>
#define SqureEdge 3
using namespace std;
struct NumNodeInfo
{
	char NumEle[SqureEdge][SqureEdge];//由數(shù)字1、2、3、4、5、6、7、8、0構(gòu)成,0代表空值
	NumNodeInfo *pChildNode[4];
	bool isActive;//是否激活
};
//棧用于存儲(chǔ)最終搜尋到的路徑中的節(jié)點(diǎn)指針
struct NodeStack
{
	NumNodeInfo *pNeededNode;
	NodeStack *pNext;
};
/************************************************************************/
/* 函數(shù):初始化節(jié)點(diǎn)指針                                                 */
/* 參數(shù):OriPosx,OriPoy為原節(jié)點(diǎn)的0的坐標(biāo),DesPosx,DesPosy                */
/*       為目標(biāo)位置0的坐標(biāo),pOriNode為原節(jié)點(diǎn)指針,pDesNode為目標(biāo)節(jié)點(diǎn)指針  */
/************************************************************************/
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;
}
/************************************************************************/
/* 函數(shù):判斷兩個(gè)節(jié)點(diǎn)的內(nèi)容是否一致                                     */
/* 參數(shù):*/
/* 返回值:如果一致返回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;
}

/************************************************************************/
/* 函數(shù):檢測所要增加的節(jié)點(diǎn)是否已出現(xiàn)過                                 */
/* 參數(shù):pTestNode為被檢測的節(jié)點(diǎn)指針,pTreeParNode為樹結(jié)構(gòu)的父節(jié)點(diǎn)      */
/* 返回值:如果已出現(xiàn)過返回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;
}


/************************************************************************/
/* 函數(shù):構(gòu)建當(dāng)前節(jié)點(diǎn)的子節(jié)點(diǎn)                                           */
/* 參數(shù):CurNode 為當(dāng)前節(jié)點(diǎn)指針,ParNode為但錢節(jié)點(diǎn)的父節(jié)點(diǎn)指針,         */
/*       pSelfTreeRootNode為當(dāng)前樹的根節(jié)點(diǎn),pNeighborTreeRootNode為同步的*/
/*       鄰樹的根節(jié)點(diǎn)                                                   */
/* 返回值:如果所增加的節(jié)點(diǎn)在鄰樹中存在,則返回共同存在的2個(gè)節(jié)點(diǎn)中的一個(gè) */
/*         否則返回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;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91久久精品日日躁夜夜躁欧美| 欧洲激情一区二区| 欧美精品一区二区三区蜜臀| 日韩精品一级中文字幕精品视频免费观看| 色综合天天综合| 一区在线观看视频| 北条麻妃一区二区三区| 欧美激情在线看| 国产99一区视频免费| 久久久五月婷婷| 国产精品自拍一区| 国产亚洲欧美一级| 国产精品1024久久| 欧美激情一区二区三区全黄| 不卡欧美aaaaa| 综合在线观看色| 色综合激情五月| 亚洲综合视频在线| 精品视频1区2区3区| 天堂久久一区二区三区| 日韩一区二区三区精品视频| 麻豆精品视频在线观看免费 | 国产精品亚洲成人| 久久久久久久久97黄色工厂| 国产成人高清视频| 国产精品不卡视频| 色婷婷综合中文久久一本| 一区二区三区在线视频播放| 欧美日本国产一区| 另类的小说在线视频另类成人小视频在线| 精品久久久网站| 国产精品66部| 日韩美女视频一区二区 | 精品国产123| 国产成人av网站| 国产精品久久久久影院老司| 欧洲国内综合视频| 蜜桃在线一区二区三区| 国产日韩欧美综合在线| 97久久超碰精品国产| 亚洲国产日韩a在线播放性色| 日韩一区二区三区四区| 国产高清不卡一区二区| 亚洲欧美激情小说另类| 91麻豆精品国产自产在线| 国产在线不卡一卡二卡三卡四卡| 国产精品卡一卡二| 欧美一区二区网站| 色婷婷久久久综合中文字幕| 亚洲国产中文字幕| 日韩欧美视频在线| 不卡一区二区三区四区| 亚洲成人av一区二区三区| 日韩欧美色电影| av一区二区久久| 视频一区欧美日韩| 精品成人私密视频| 色美美综合视频| 久久精品av麻豆的观看方式| 国产精品二三区| 欧美精品丝袜久久久中文字幕| 国产黄色精品视频| 亚洲综合一二三区| 精品久久久久久久人人人人传媒| av在线不卡观看免费观看| 一区二区免费看| 久久精品一区二区三区av| 91国偷自产一区二区三区成为亚洲经典| 青青草97国产精品免费观看无弹窗版| 中文成人综合网| 91麻豆精品国产91久久久| 成人午夜私人影院| 天堂久久久久va久久久久| 中文字幕av不卡| 欧美日韩mp4| 成人18视频在线播放| 另类小说综合欧美亚洲| 一区二区三区四区不卡在线 | 在线观看日韩电影| 国产在线不卡一区| 五月婷婷综合在线| 国产精品欧美综合在线| 日韩一区二区在线观看视频播放| 99re热视频精品| 国产一区二区在线观看免费| 亚洲第一久久影院| 国产精品人成在线观看免费| 日韩精品中文字幕在线一区| 欧美性大战久久久久久久| 国产传媒久久文化传媒| 麻豆久久一区二区| 性做久久久久久免费观看欧美| 国产精品嫩草影院com| 日韩欧美www| 欧美少妇一区二区| 99久久精品国产一区二区三区| 国产一区在线不卡| 青青草97国产精品免费观看| 亚洲一区二区在线视频| 中文字幕av一区 二区| 精品国产免费人成电影在线观看四季| 欧美色大人视频| 91美女精品福利| 成人小视频在线| 国产河南妇女毛片精品久久久| 欧美绝品在线观看成人午夜影视| 波多野结衣视频一区| 精品一区二区三区影院在线午夜 | 国产高清在线观看免费不卡| 看国产成人h片视频| 五月天精品一区二区三区| 一区二区三区在线看| 国产精品国产三级国产普通话99| 久久女同互慰一区二区三区| 精品久久久久香蕉网| 欧美一区午夜视频在线观看| 欧美日韩激情在线| 91高清视频在线| 色哟哟欧美精品| 色伊人久久综合中文字幕| 不卡av在线免费观看| 成人午夜视频免费看| 国产精品一区2区| 国产精品性做久久久久久| 国产乱码精品一区二区三区av| 精品一区二区三区免费视频| 精品影视av免费| 久久精品国产77777蜜臀| 捆绑调教一区二区三区| 久久精品免费看| 精品一区二区三区免费视频| 国产在线日韩欧美| 国内精品视频666| 国产成人久久精品77777最新版本| 国产米奇在线777精品观看| 国产一区免费电影| 国产精品亚洲视频| 床上的激情91.| 91在线精品一区二区| 色综合色狠狠天天综合色| 一本一本久久a久久精品综合麻豆| 一本大道久久a久久精品综合| 91国偷自产一区二区三区观看| 色狠狠综合天天综合综合| 在线免费一区三区| 欧美日韩综合在线| 在线不卡一区二区| 欧美成人性战久久| 久久久久久久久免费| 国产视频一区二区在线| 国产精品日产欧美久久久久| 亚洲你懂的在线视频| 亚洲成在人线免费| 午夜亚洲福利老司机| 日韩电影在线观看一区| 国产一区二区按摩在线观看| 成人妖精视频yjsp地址| 99re8在线精品视频免费播放| 欧美亚洲一区二区三区四区| 欧美老人xxxx18| 337p粉嫩大胆噜噜噜噜噜91av| 国产精品久久久久久久久免费丝袜 | 日韩视频免费观看高清在线视频| 久久嫩草精品久久久精品一| 国产精品无圣光一区二区| 亚洲精品视频在线| 日本伊人色综合网| 国产精品一级片在线观看| 成人网在线播放| 欧美在线视频日韩| 欧美大片国产精品| 一区免费观看视频| 偷拍与自拍一区| 国产一区二区三区电影在线观看| 99精品视频在线播放观看| 在线播放欧美女士性生活| 久久久久国产精品厨房| 亚洲欧美激情在线| 蜜臀久久99精品久久久久久9| 粗大黑人巨茎大战欧美成人| 欧美私模裸体表演在线观看| 精品久久久影院| 中文字幕一区二区三区精华液 | 精品国产成人在线影院| 国产精品毛片高清在线完整版| 亚洲一区二区三区美女| 极品少妇xxxx精品少妇偷拍 | 91蜜桃网址入口| 91精品国产麻豆| 国产精品国产三级国产普通话99| 丝袜诱惑亚洲看片| 成人网在线播放| 日韩视频中午一区| 亚洲欧美国产高清| 国产在线一区观看| 欧美视频在线观看一区| 国产目拍亚洲精品99久久精品| 亚洲va天堂va国产va久| 懂色一区二区三区免费观看| 91麻豆精品国产91久久久久久|