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

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

?? invert10_31.c

?? 為自然語(yǔ)言處理領(lǐng)域的中文分詞程序
?? C
?? 第 1 頁(yè) / 共 4 頁(yè)
字號(hào):
/*本程序試驗(yàn)更新和建立倒排索引,該程序添加了英文索引處理,
在索引目錄下存儲(chǔ)$curfile.txt文件,記錄當(dāng)前寫的索引文件
2006_10_4 程序重新復(fù)查內(nèi)存情況,主要為了解決倒排索引中可能存在的內(nèi)存泄漏問(wèn)題,另外去掉內(nèi)存中不相關(guān)的函數(shù)
2006_10_8寫更新倒排程序,其中idx.txt文件每生成多篇文檔后寫一次idx.txt文件。
對(duì)于$curfile.txt文件,第一行記錄當(dāng)前寫的倒排文件的名字,第二行記錄已經(jīng)更新過(guò)的文件的名字,
下一次更新時(shí)從該文件開(kāi)始更新
基于以上要求,修改程序思路如下:
    1、去掉建立倒排索引時(shí)對(duì)idx.txt文件寫的操作,idx.txt文件只在更新時(shí)生成
    2、寫?yīng)毩⒌母潞瘮?shù),該函數(shù)是對(duì)當(dāng)前目錄下的所有大于$update.txt中記錄的文件(除idx.txt和$curfile.txt)文件內(nèi)容
	進(jìn)行重新整理的過(guò)程,重整主要是將相同的詞放在一起。
	建倒排索引時(shí)不寫idx.txt
*/
#include "stdio.h"
#include "seng.h"
#include "string.h"
#include "math.h"
#include "malloc.h"
#include "stdlib.h"
#include "assert.h"
#include "direct.h"

#define MALCSIZE     100  /*一次分配的內(nèi)存大小*/
#define RELCSIZE     100  /*當(dāng)一次分配的內(nèi)存不夠時(shí),二次分配時(shí)的加數(shù)*/
#define SHORTSIZE    20   /*一個(gè)詞的最大詞長(zhǎng)10*/
#define INDEXNUMBER  6768 /*簡(jiǎn)體中文字的個(gè)數(shù)*/
#define GBLWBTMNUM   161  /*簡(jiǎn)體中文國(guó)標(biāo)碼低位最小值*/
#define GBLWTOPNUM   254  /*簡(jiǎn)體中文國(guó)標(biāo)碼低位最大值*/
#define GBHTBTMNUM   176  /*簡(jiǎn)體中文國(guó)標(biāo)碼高位最小值*/
#define GBHTTOPNUM   247  /*簡(jiǎn)體中文國(guó)標(biāo)碼高位最大值*/
#define MAXPATHL      50   /*最大路徑*/
#define MAXPATH      50   /*最大路徑*/
#define MAXWORD      80   /*最長(zhǎng)的詞長(zhǎng)為40,一篇文檔中最多出現(xiàn)的相同的字頭的詞的個(gè)數(shù)*/
#define MAXWORDONE   50   /*以某一個(gè)字開(kāi)頭的可能有的詞數(shù)*/
#define MAXLINEFILE  3    /*倒排索引文件的最大行數(shù)*/
   /* #define MAXWORDLEN   50  最大詞長(zhǎng)*/
#define MAXNUMBER    50   /*最大文檔數(shù)*/
#define MAXFILENAME    20   /*最大文檔數(shù)*/
#define MAXPOS       400   /*一個(gè)詞在一篇文章中最多出現(xiàn)的次數(shù)*/
#define LOWERA       97   /*字母a所對(duì)應(yīng)的的ASCII碼*/
#define DIFLOWHIGA   32   /*大寫字母和小寫字母ASCII碼的差值*/

#define MAXLINELEN   1000 /*倒排文檔中每行最多出現(xiàn)的字符個(gè)數(shù)*/


#define MAXBUFFER    2000  /*最大緩存區(qū), 要注意大小*/
int realloccount = 10;

/*將當(dāng)前的詞放入正向表中,sWords詞內(nèi)容, iPos詞在原文件中的位置,正常返回0*/
int InstWd2FwList(ForwardNode *pfNode, char *sWords, char *sFileURL, int iPos, char type)
{
	WordNode *pWordNode;
	/*在鏈表中尋找該詞,如果該詞出現(xiàn)了就在原節(jié)點(diǎn)上將頻率加1,如果該詞沒(méi)有出現(xiàn)則新創(chuàng)建并添加節(jié)點(diǎn)*/
	
	if((pfNode == NULL) || (sWords == NULL) || (sFileURL == NULL) || (iPos < 0))
	{
		printf("error is: %d\n", EFWLIST);
		return EFWLIST;
	}
	/*得到詞鏈表的首節(jié)點(diǎn)*/
	if (pfNode->wFWordNode == NULL)
	{
		pfNode->wFWordNode = (WordNode *) malloc(sizeof(WordNode));
		pWordNode = pfNode->wFWordNode;
		pWordNode->pnext = NULL;
		pWordNode->fWeight = 0;
		pWordNode->iFreq = 1;
		pWordNode->iPos = (int *) malloc(MAXPOS * sizeof(int));
		pWordNode->iPos[0] = iPos;
		pWordNode->sResever = '0';
		strcpy(pWordNode->sFileURL, sFileURL);
		pWordNode->sWords = (char *) malloc( MAXWORDLEN * sizeof(char));
		strcpy(pWordNode->sWords, sWords);
		return 0;
	}

	pWordNode = pfNode->wFWordNode;

	while ((strcmp(pWordNode->sWords, sWords) != 0) && (pWordNode->pnext != NULL))
	{
		pWordNode = pWordNode->pnext;
	}
	/*找到該詞*/
	if ((strcmp(pWordNode->sWords, sWords)) == 0)
	{
		/*詞頻加1*/
		(pWordNode->iFreq)++;
		/*記住該詞的位置*/
		if (pWordNode->iFreq < MAXPOS)
		{
			pWordNode->iPos[pWordNode->iFreq - 1] = iPos;
			strcpy(pWordNode->sFileURL, sFileURL);
		}
		else
		{
			pWordNode->iPos = (int *) realloc(pWordNode->iPos, pWordNode->iFreq * sizeof(int));
			strcpy(pWordNode->sFileURL, sFileURL);
			if(pWordNode->iPos == NULL)
			{
				printf("error is: %d\n", EMALLOC);
				printf("內(nèi)存不足!\n");
				return EMALLOC;
			}
		}
	}
	/*該鏈表中沒(méi)有該詞,創(chuàng)建該詞節(jié)點(diǎn)*/
	else
	{
		pWordNode->pnext = (WordNode *) malloc(sizeof(WordNode));
		if(pWordNode->pnext == NULL)
		{
			printf("error is: %d\n", EMALLOC);
			printf("內(nèi)存不足!\n");
			return EMALLOC;
		}
		pWordNode = pWordNode->pnext;
		pWordNode->pnext = NULL;
		pWordNode->fWeight = 0;
		pWordNode->iFreq = 1;
		pWordNode->sResever = type;
		pWordNode->iPos = (int *) malloc(MAXPOS * sizeof(int));
		if(pWordNode->iPos == NULL)
		{
			printf("error is: %d\n", EMALLOC);
			printf("內(nèi)存不足!\n");
			return EMALLOC;
		}
		pWordNode->iPos[0] = iPos;
		strcpy(pWordNode->sFileURL, sFileURL);
		pWordNode->sWords = (char *) malloc( MAXWORDLEN * sizeof(char));
		if(pWordNode->sWords == NULL)
		{
			printf("error is: %d\n", EMALLOC);
			printf("內(nèi)存不足!\n");
			return EMALLOC;
		}
		strcpy(pWordNode->sWords, sWords);
	}
	return 0;
}

/*計(jì)算每個(gè)詞在文章中的權(quán)值
入口參數(shù):ForwardNode *pfNode 正向表的指針
          ipos該段文章中一共所含的詞的個(gè)數(shù)
  */
int Weight(ForwardNode *pfNode, long lPos)
{
	WordNode *pWNode;
	double lFreq;
	double dPos;

	if(pfNode == NULL) {
		printf("EWEIGHT\n");
		return EWEIGHT;
	}
	dPos =lPos;

	pWNode = pfNode->wFWordNode;
	while(pWNode != NULL)
	{
		/*如果是文檔題目*/
		if(pWNode->sResever == 't')
		{
			pWNode->fWeight = 0.7;
			pWNode = pWNode->pnext;
			continue;
		}
		/*如果是文檔作者*/
		else if(pWNode->sResever == 'a')
		{
			pWNode->fWeight = 1.0;
			pWNode = pWNode->pnext;
			continue;
		}
		/*如果是文檔摘要*/
		else if(pWNode->sResever == 'b')
		{
			pWNode->fWeight = 0.5;
			pWNode = pWNode->pnext;
			continue;
		}
		/*如果是文檔關(guān)鍵詞*/
		else if(pWNode->sResever == 'k')
		{
			pWNode->fWeight = 1.0;
			pWNode = pWNode->pnext;
			continue;
		}
		else
		{
			lFreq = pWNode->iFreq;
			pWNode->fWeight = lFreq/dPos;
			pWNode = pWNode->pnext;		
		}
	}

	return 0;
}

/*功能:讀分詞后的內(nèi)存,該函數(shù)包括詞的個(gè)數(shù)和位置的統(tǒng)計(jì),位置只統(tǒng)計(jì)該詞在正向表中的位置

  入口參數(shù):SegBuf 分詞后的buffer
            sDocID 文檔編號(hào),(目前以自然數(shù)統(tǒng)計(jì))
			pfNode 正向表在內(nèi)存中的指針
  返回值:正確返回0,錯(cuò)誤返回錯(cuò)誤碼
*/
int SegBufPos(char *SegBuf, char *sDocID, char *sFileURL, ForwardNode *pfNode)
{
	long DCount = 0, lSegBufLen, lLoop;
	char sWords[MAXWORDLEN];
	int  iPosTemp, iWordLen;
	long lPos;
	char type;
	unsigned char temp[2];
	if((SegBuf == NULL) || (sDocID == NULL) || (sFileURL == NULL) || (pfNode == NULL)){
		printf("error is: %d\n", SEGFLRD);		
		return SEGFLRD;
	}
	/*記錄文檔個(gè)數(shù)*/
	if(MAXDOCID > strlen(sDocID)){
		strcpy(pfNode->sDocID, sDocID);
	}
	else{
		printf("error is: %d\n", EDOCID);
		printf("MAXDOCID is not enough!\n");
		return EDOCID;
	}
	if(MAXPATHL > strlen(sDocID)){
		strcpy(pfNode->sFileURL,sFileURL);
	}
	else{
		printf("error is: %d\n", EPATHLEN);
		printf("MAXPATHL is not enough!\n");
		return EPATHLEN;
	}
	printf("begin to SegBufPos\n");
	lPos = 0;
	pfNode->wFWordNode = NULL;
	lSegBufLen = strlen(SegBuf);
	if (lSegBufLen <= 0) {
		printf("error is: %d\n", SEGFLRD);
		return SEGFLRD; 
	}
	/*printf("%s\n", SegBuf);*/
	type = '0';
	for( lLoop = 0, iWordLen = 0; lLoop < lSegBufLen; lLoop = lLoop + iWordLen)
	{
		while (SegBuf[lLoop] == ' ') {
			lLoop++;
		}
		if(lLoop >= lSegBufLen) break;
		sscanf((SegBuf + lLoop),"%s ", sWords);
		
		iWordLen = strlen(sWords) + 1;

		if (strcmp(sWords,"末##末") == 0)
		{
			continue;
		}
		if (strcmp(sWords,"title@title") == 0)
		{
			type = 't';
			continue;
		}
		if (strcmp(sWords,"author@author") == 0)
		{
			type = 'a';
			continue;
		}
		if (strcmp(sWords,"keyword@keyword") == 0)
		{
			type = 'k';
			continue;
		}
		if (strcmp(sWords,"abstract@abstract") == 0)
		{
			type = 'b';
			continue;
		}
		if (strcmp(sWords,"text@text") == 0)
		{
			type = 'x';
			continue;
		}
		if (strcmp(sWords,"畢紅") == 0)
		{
			printf("break!\n");
			
		}

		temp[0] = sWords[0];
		temp[1] = sWords[1];
		iPosTemp = 0;

		/*找到該詞的位置*/
		lPos++;

		/*如果是漢字*/
		if ((temp[0] <= GBHTTOPNUM) && (temp[0] >= GBHTBTMNUM) && (temp[1] <= GBLWTOPNUM ) && (temp[1] >= GBLWBTMNUM ))
		{

			/*將該詞插入漢字正向表*/
			if (InstWd2FwList(pfNode, sWords, sFileURL, lPos, type) != 0)
			{
				printf("error is: %d\n", EFWWRT);
				return EFWWRT;
			}
		}
		/*如果是英文單詞*/
		else if ((temp[0] >= 'a') && (temp[0] <= 'z') || ((temp[0] >= 'A') && (temp[0] <= 'Z')))
		{
			/*將該詞放入正向表*/
			if (InstWd2FwList(pfNode, sWords, sFileURL, lPos, type) != 0)
			{
				printf("error is: %d\n", EFWWRT);
				return EFWWRT;
			}
		}
	}
	printf("SegBufPos is over!\n");
	/*計(jì)算各個(gè)詞的權(quán)值*/

	if( Weight(pfNode, lPos) != 0) {return EWEIGHT;}
	printf("weight calculate is over!\n");
	return 0;	
}

/*
功能:建立正向表,
      記錄處理的文檔總數(shù)的文件名,即文檔編號(hào),
	  
入口參數(shù):
	  sFilePath 記錄文檔總個(gè)數(shù)文件所在的路徑
      sRcdFile  記錄文檔總個(gè)數(shù)的文件
      sScFile 記錄原文件位置的路徑
	  fNode  正向表指針
	  DocCount 文檔個(gè)數(shù)
	  sResult 分詞后的文檔緩沖區(qū)
返回值:成功返回0,否則返回錯(cuò)誤編碼
*/
int ForwardBld(char *sFilePath, char *sRcdFile, char *sScFile, 	ForwardNode **fNode, long DocCount,  char *strBuf)
{
	FILE *pFlCount;
	char *sDocCount;
	char *RcdFile;
	char *sFileURL;
	int  iCurDoc;
	long ltempCount;
	int i;

	if((sRcdFile == NULL) || (sScFile == NULL) || (sFilePath == NULL) || (fNode == NULL) || (strBuf == NULL))
	{
		printf("建立正向表時(shí)入口參處有誤!\n");
		return EFWBLDPAR;
	}
	if(DocCount <= 0)
	{
		printf("建立正向表時(shí)入口參處有誤!\n");
		return EFWBLDPAR;
	}

	RcdFile = (char *) malloc(MAXPATHLEN * sizeof(char ));
	sDocCount = (char *) malloc(MAXNUMBER * sizeof(char));
	sFileURL = (char *) malloc(MAXPATHLEN * sizeof(char));
	if((RcdFile == NULL) || (sDocCount == NULL) || (sFileURL == NULL))
	{
		printf("內(nèi)存不足!\n");
		return EMEM;
	}

	/*得到記錄系統(tǒng)總共文檔數(shù)的文件名*/
	strcpy(RcdFile, sFilePath);
	strcat(RcdFile,"\\");
	strcat(RcdFile, sRcdFile);

	/*記錄總共處理的文檔個(gè)數(shù)*/
	if( (pFlCount  = fopen( RcdFile, "r" )) == NULL )
	{
		if((pFlCount = fopen(RcdFile, "a+")) == NULL)
		{
			printf("record.txt cann't open!\n");
			/*return EFILEOPEN;*/
		}
		ltempCount = DocCount;
		iCurDoc = 0;
		itoa(ltempCount, sDocCount, 10);
		if(pFlCount)
		{
			fprintf(pFlCount, "%s ", sDocCount);
			fclose(pFlCount);
		}
	}
	/*讀出處理過(guò)的文檔個(gè)數(shù)*/
	else
	{
		fscanf(pFlCount,"%s ",sDocCount);
		if(strlen(sDocCount) > MAXNUMBER)
		{
			/*文件指針退回*/
			i = strlen(sDocCount);
			i = -i;
			fseek(pFlCount, i, 1);
			sDocCount = (char *) realloc (sDocCount, (MAXNUMBER + RELCSIZE ) * sizeof(char));
			fscanf(pFlCount,"%s ",sDocCount);
		}
		ltempCount = atol(sDocCount);
		iCurDoc = ltempCount;
		ltempCount = ltempCount + DocCount;
		itoa(ltempCount, sDocCount, 10);
		fclose(pFlCount);
		if( (pFlCount  = fopen( RcdFile, "w+" )) == NULL )
		{
			printf("record.txt can't open! (else) \n");
			return EFILEOPEN;
		}
		fprintf(pFlCount, "%s ", sDocCount);
		fclose(pFlCount);
	}

	printf("當(dāng)前正在處理文檔:%s\n", sDocCount);
	*fNode = (ForwardNode *) malloc((DocCount) * sizeof(ForwardNode));
	if(*fNode == NULL)
	{
		return EMEM;
	}

	/*得到分詞前原文件名字*/
	strcpy(sFileURL, sScFile);
	
	for(i = 0; i < DocCount; i++)
	{
		/* 當(dāng)前目錄下的分詞結(jié)果文件以數(shù)字命名
		itoa(i,sFileName, 10);
		strcat(sFileName,".txt");
		*/
		if(itoa(iCurDoc + i,sDocCount, 10) == NULL)
		{
			return EITOA;
		}
		if(SegBufPos(strBuf, sDocCount, sFileURL, *fNode + i) != 0)	
		{
			printf("%d\n", ERSEGFILE);
			printf("segbufPos return error!\n ");
			return ERSEGFILE;
		}
	}
	if(RcdFile)
		free(RcdFile);
	if(sDocCount)
		free(sDocCount);
	if(sFileURL)
		free(sFileURL);
	return 0;
}




/*該函數(shù)功能:建立漢字倒排索引表,(索引號(hào)是GB碼減去176和161)
入口參數(shù):InvertNode **Index為待分配的空間
          int * error 錯(cuò)誤編碼,函數(shù)執(zhí)行正確為0
返回值:  InvertNode ** 分配內(nèi)存后的地址
*/
InvertNode ** IndexBuild(InvertNode **Index, int * error)
{
	int i;
	int count = 0;
	Index = (InvertNode **) malloc ((GBHTTOPNUM - GBHTBTMNUM + 1) * sizeof(InvertNode *));

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品日产欧美久久久久| 中文字幕免费不卡在线| 国产美女精品在线| 亚洲国产一区二区三区青草影视| 欧美大片国产精品| 色老汉一区二区三区| 国产伦精品一区二区三区免费迷| 一级女性全黄久久生活片免费| 久久男人中文字幕资源站| 欧美色图片你懂的| 成人av网站在线观看免费| 老司机免费视频一区二区三区| 亚洲伊人伊色伊影伊综合网| 欧美国产1区2区| 26uuu亚洲综合色| 欧美日韩电影在线播放| 99re这里只有精品6| 国产盗摄精品一区二区三区在线| 免费成人深夜小野草| 亚洲图片有声小说| 亚洲免费观看高清| 日本一区二区三区四区| 天堂久久一区二区三区| 亚洲美女免费在线| 中文字幕高清不卡| 久久精品亚洲国产奇米99| 日韩一级大片在线观看| 91精品在线观看入口| 欧美色精品天天在线观看视频| 99久久国产免费看| eeuss鲁片一区二区三区| 韩国三级电影一区二区| 久久精品免费观看| 麻豆一区二区三| 免费的成人av| 久久se这里有精品| 国产在线精品免费av| 加勒比av一区二区| 国产精品综合视频| 国产成人免费xxxxxxxx| 大胆欧美人体老妇| 懂色av一区二区在线播放| 国产精品原创巨作av| 国产二区国产一区在线观看| 国产成人一区在线| 成人av在线资源| 波多野洁衣一区| 91蜜桃网址入口| 色88888久久久久久影院按摩| 色偷偷成人一区二区三区91 | 国产九九视频一区二区三区| 蜜臀91精品一区二区三区| 麻豆中文一区二区| 国产精品一区二区免费不卡| 丁香婷婷综合五月| 色婷婷精品大在线视频| 欧美体内she精高潮| 制服丝袜中文字幕一区| 欧美mv和日韩mv国产网站| xvideos.蜜桃一区二区| 国产精品欧美一区喷水| 亚洲乱码中文字幕综合| 午夜精品福利一区二区三区蜜桃| 奇米一区二区三区| 国产福利精品一区二区| 91在线免费看| 在线成人免费视频| 久久亚洲二区三区| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | gogogo免费视频观看亚洲一| 日韩成人一区二区三区在线观看| 精品一区精品二区高清| 日韩精品91亚洲二区在线观看 | 日本不卡在线视频| 国产精品一级片| 94色蜜桃网一区二区三区| 777亚洲妇女| 久久九九久久九九| 一区二区三区免费观看| 久久99久久99精品免视看婷婷| 国产成人精品午夜视频免费 | 欧洲视频一区二区| 欧美电影免费观看高清完整版| 国产精品天干天干在线综合| 亚洲成在人线免费| 成人亚洲一区二区一| 欧美日本一区二区三区四区| 中文字幕国产一区| 轻轻草成人在线| 97国产精品videossex| 日韩免费一区二区| 一区二区三区免费网站| 国产一区二区三区四区五区美女| 欧洲中文字幕精品| 欧美激情一二三区| 日韩成人dvd| 一本到高清视频免费精品| 精品区一区二区| 亚洲国产成人va在线观看天堂| 丁香啪啪综合成人亚洲小说 | 欧美在线视频全部完| 久久精品一区二区三区不卡| 婷婷综合在线观看| 91免费看片在线观看| 国产日产欧美一区| 久久精品久久精品| 欧美日韩国产经典色站一区二区三区| 久久99国产精品免费网站| 色婷婷综合久色| 国产午夜精品一区二区三区视频| 视频一区二区国产| 欧美午夜精品一区二区蜜桃| 国产精品―色哟哟| 国产在线乱码一区二区三区| 在线播放中文字幕一区| 亚洲人123区| 成人高清免费在线播放| 亚洲精品一区二区三区福利| 丝袜美腿成人在线| 欧美视频三区在线播放| 亚洲精选视频在线| 91性感美女视频| 国产精品乱码一区二区三区软件 | 91精品麻豆日日躁夜夜躁| 亚洲黄色在线视频| 91麻豆福利精品推荐| 国产精品麻豆视频| 福利一区福利二区| 国产亚洲成av人在线观看导航| 精一区二区三区| 欧美电影精品一区二区| 日本美女一区二区三区视频| 精品视频在线视频| 亚洲成人精品一区| 777午夜精品免费视频| 亚洲不卡一区二区三区| 欧美二区乱c少妇| 日本va欧美va精品发布| 欧美一区二区三区在线看| 天天操天天综合网| 日韩一区二区三区视频在线| 美国毛片一区二区| 久久亚洲综合色一区二区三区| 国产在线日韩欧美| 亚洲国产精品高清| 97国产精品videossex| 一区二区三区欧美日韩| 欧美日韩亚洲国产综合| 午夜国产精品一区| 日韩欧美在线不卡| 日韩欧美一二三区| 精品综合免费视频观看| 欧美国产97人人爽人人喊| av一二三不卡影片| 亚洲一区二区三区视频在线播放| 欧美丝袜丝交足nylons| 男女激情视频一区| 国产午夜精品一区二区三区四区| 成人av在线观| 亚洲国产日产av| 欧美成人精品二区三区99精品| 国产精品自在欧美一区| 亚洲视频在线观看一区| 欧美日韩国产免费一区二区| 九一九一国产精品| 国产精品国产成人国产三级| 欧美视频一区二区三区| 激情综合网最新| 自拍偷在线精品自拍偷无码专区| 欧美视频三区在线播放| 激情文学综合网| 亚洲欧美日韩电影| 欧美一区二区三区人| 成人动漫一区二区在线| 五月综合激情日本mⅴ| 26uuu精品一区二区| 日本高清视频一区二区| 久久电影网电视剧免费观看| 国产精品卡一卡二| 日韩午夜激情av| 99久久精品国产导航| 另类调教123区| 亚洲免费看黄网站| 久久久久国产一区二区三区四区 | 性欧美大战久久久久久久久| 欧美精品一区二区久久久| 91免费视频观看| 国产伦理精品不卡| 亚洲成人tv网| 国产精品久久久爽爽爽麻豆色哟哟| 欧美理论片在线| 色综合天天做天天爱| 国内精品久久久久影院薰衣草 | 国产精品主播直播| 亚洲国产成人av网| 国产精品久久久久久妇女6080| 日韩视频免费观看高清在线视频| 99久久国产综合精品麻豆| 国内外成人在线视频| 午夜视黄欧洲亚洲|