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

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

?? tree.h

?? 一個小型全文檢索模型—— 全文檢索模型
?? H
字號:


#include <stdlib.h>
#include <string.h>
#include <stdio.h>

//Status是函數的類型,其值是函數結果狀態代碼
typedef int Status;
#define INT_MAX 32767
#define LINESIZE 80//設一行字符數為80
#define MAXKEYLEN 26//關鍵字的長度
#define MAXNUM 100//統計單詞的最大數
typedef struct{	  
	char *ch;  //關鍵字
	int  num;  //關鍵字的長度
	char *info;//關鍵字有關信息
}KeysType;     //關鍵字類型

typedef enum{LEAF,BRANCH} NodeKind;//結點種類:{葉子,分支}

typedef struct DLTNode{
	char symbol;
	struct DLTNode *next;     //指向兄弟結點的指針
	NodeKind kind;            //結點標志
	union{
		struct DLTNode *first;//分支結點的孩子鏈指針
		struct {
			int idx;          //葉子結點的count數組下標指針
			KeysType infoptr;
		};
	};
}DLTNode,*DLTree;   //雙鏈樹類型
char line[LINESIZE];//用于緩存文章中每行的字符串
struct{
	int times;
	KeysType info;
}count[MAXNUM];
int NUM=0;//記錄整個文章的單詞總數
char ch1[17][100]={"a","an","the","them","there","here","they","are","that","this","those","what","which","why","then","and","these"};

void InitTree(DLTree &root){
	//初始化鍵樹
	root=new DLTNode;
	root->next =NULL;
	root->first=NULL;
}//InitTree

Status Insert_DLTree(DLTree &root,KeysType K,int &n){
	//指針root所指雙鏈樹中已含n個關鍵字,若不存在和K相同的關鍵字,
	//則將關鍵字K插入到雙鏈樹中相應位置,樹中關鍵字個數n增1且返回TRUE;..
	//否則不再插入返回FALSE
	DLTree p=root->first,f=root,pre,s;
	int j=0;
    while (p && j<K.num ){//在鍵樹中進行查找
        pre=NULL;
		while (p && p->symbol <K.ch [j]){//查找和K.ch[j]相同的結點
			pre=p;
			p=p->next ;
		}
		if (p && p->symbol ==K.ch[j]){
			f=p;
			p=p->first ;
			j++;
		}//找到后進入鍵樹的下一層,即查找和K.ch[j+1]相同的結點
		else{//沒有找到和K.ch[j]相同的結點,插入K.ch[j]
			s=new DLTNode;
			s->kind =BRANCH;
			s->symbol =K.ch [j++];
			if (pre) pre->next =s;
			else f->first =s;
			s->next =p;
			s->first =NULL;
			p=s;
			break;
		}//else
	}//while
    if (p&&j==K.num && p->first&&p->first ->kind ==LEAF) return FALSE;
	else{//鍵樹中已存在相同前綴的單詞,插入由剩余字符構成的單支樹
		while (j<=K.num ){
				s=new DLTNode;
				s->next =NULL;
				if (p){
				s->next =p->next ;
				p->first =s;
				p=s;
				}
				else {
					f->first =s;
					p=s;
				}
				if(j<K.num ){
					s->kind =BRANCH;
					s->symbol =K.ch [j++];
					s->first =NULL;
				}
				else{
					s->symbol ='$';
					s->kind =LEAF;
					n++;
					s->idx =n;
					s->infoptr.ch =count[s->idx ].info.ch =K.ch ;
					s->infoptr.info =count[s->idx ].info.info =K.info ;
					s->infoptr.num =count[s->idx ].info.num=K.num ;
					count[s->idx ].times=0;
					j++;
				}
			}//while
		return TRUE;
		}//else
}//Insert_DLTree


void CreatDLTree(DLTree &T,KeysType *key,int &n){
	//建立鍵樹模型
	for (int i=0;i<=16;i++){
		key[i].ch=ch1[i];
        key[i].info=NULL;
		key[i].num =strlen(key[i].ch );
	}
	key[0].info ="indefinite article.";//a
	key[1].info ="indefinite articles.";//an
	key[2].info ="definite article.";//the
    key[3].info ="personal pronoun";//them
    key[4].info ="adv. of place and direction";//there
    key[5].info ="to this point or place";//here
    key[6].info ="pronoun";//they
    key[7].info ="v.i. joining subject & predicate";//are
    key[8].info ="adj. & pron.";//that
    key[9].info ="adj. & pron.";//this
    key[10].info ="adj. & pron.";//those
    key[11].info ="adj. & pron.,asking for a selection from an indefinite number";//what
    key[12].info ="adj. & pron.,asking for a selection from two or a group";//which
    key[13].info ="adj. & int.,for what reason,with what purpose";//why
    key[14].info ="adv.,at what time";//then
    key[15].info ="conj.,connecting words";//and 
    key[16].info ="adj. & pron.";//these
    for(i=0;i<=16;i++)
      Insert_DLTree(T,key[i],n);//建立鍵樹模型
}//CreatDLTree

Status Search_DLTree(DLTree rt,int j,int &k){
	//若line中從第j個字符起長度為k的子串和指針rt所指向雙鏈樹中單詞相同,
	//則數組count中相應分量增1,并返回TRUE,否則返回FALSE
	DLTree p;
	int found;
	k=0;
	found=FALSE;
	p=rt->first ;//p指向雙鏈樹中的第一棵子樹的樹根
    while (p && !found){
		while (p && p->symbol <line[j+k]) p=p->next ;
		if (!p||p->symbol >line[j+k]) break;//在鍵樹的第k+1層上匹配失敗
		else{//繼續匹配
			p=p->first ;
			k++;
			if (p->kind ==LEAF){//找到一個單詞
				if (!(line[j+k]>='a'&&line[j+k]<='z')||(line[j+k]>='A'&&line[j+k]<='Z' )){
				count[p->idx ].times++;//統計數組對應元素加1
				found=TRUE;
				}//若鍵樹中含有"commit",文本行中為commit則為找到,若為committing則為沒找到
			}//if
		}//else
	}//while
	return found;
}//Search_DLTree

void setmatch(DLTree root,char *line,FILE *f){
	//統計以root為根指針的鍵樹中,各關鍵字在本文本串line中重復出現的次數,
	//并將其累加到統計數組count中去
	unsigned i=0;
	int k;//若查找成功,返回的k為所查找的關鍵字長度
	while (fgets(line,LINESIZE,f)!=NULL){
		cout<<line;
        i=0;
		while (i<=strlen(line)){//LINESIZE){
			if (!Search_DLTree(root,i,k)) {
				if (((line[i]>='a' && line[i]<='z')||(line[i]>='A'&&line[i]<='Z')||(line[i]>='0'&&line[i]<='9')) &&!((line[i+1]>='a'&&line[i+1]<='z')||(line[i+1]>='A'&&line[i+1]<='Z')||(line[i+1]>='0'&&line[i+1]<='9')))
					NUM++;//單詞總數加1
    				i++;  //若查找不成功,則從下一個字符開始查找
				}//if
	    	else {
		 		i+=k;     //查找成功,繼續在文本串中的第i+k-1個字符開始查找
				NUM++;
			}//else
		}//while
	}//while
}//setmatch

void Input(FILE *&f){
	char fname[30];
	cout<<"please input the file name:";
	cin>>fname;                     //輸入文件名
	if ((f=fopen(fname,"r"))==NULL){//輸入錯誤文件名, 無法打開
		cout<<"Can NOT open the file!"<<endl;
		exit(1);
	}
}//Input

void output(int n){
	cout<<endl;
	for(int i=1;i<=n;i++)
		if (count[i].times){
			cout<<count[i].info.ch<<" : ";
			if(count[i].info.info) cout<<count[i].info.info<<endl;
			cout<<float(count[i].times)/float(NUM)<<" in the sentence."<<endl;
		}//輸出文章中含有鍵樹中的關鍵字及有關解釋,出現頻率。即:該關鍵字出現次數/文章單詞總數
 	cout<<endl;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品国产亚洲a| 五月天亚洲精品| 91精品国产aⅴ一区二区| 成人av片在线观看| 国产在线精品一区二区 | 91在线视频官网| 国产91对白在线观看九色| 久久99国产精品免费网站| 全国精品久久少妇| 日本不卡一区二区三区高清视频| 亚洲成a天堂v人片| 天堂影院一区二区| 日韩成人伦理电影在线观看| 日韩精品每日更新| 国内精品第一页| 成人精品国产福利| 色综合色综合色综合色综合色综合| 成人毛片视频在线观看| 91啪在线观看| 欧美高清视频一二三区 | 国产一区二区三区在线观看免费 | 久久久不卡影院| 国产精品久久夜| 日韩毛片高清在线播放| 亚洲欧美区自拍先锋| 亚洲综合色丁香婷婷六月图片| 亚洲国产成人av好男人在线观看| 日韩精品一级中文字幕精品视频免费观看| 日韩主播视频在线| 国产乱子伦一区二区三区国色天香| 国产精品77777竹菊影视小说| www.亚洲激情.com| 欧美日韩久久一区二区| 精品噜噜噜噜久久久久久久久试看| 久久精品视频在线看| 国产精品毛片高清在线完整版| 一区二区三区 在线观看视频| 五月天一区二区| 成人午夜视频在线| 在线不卡中文字幕播放| 久久久激情视频| 亚洲在线视频一区| 国产尤物一区二区在线 | 亚洲国产裸拍裸体视频在线观看乱了 | 欧美唯美清纯偷拍| 久久久国产精品麻豆| 亚洲第一会所有码转帖| 国产精选一区二区三区| 欧美日韩国产三级| 国产精品婷婷午夜在线观看| 香蕉成人啪国产精品视频综合网| 国产99精品在线观看| 欧美人伦禁忌dvd放荡欲情| 国产精品日韩成人| 精品一区二区免费在线观看| 日本高清成人免费播放| 国产亚洲精久久久久久| 亚洲国产成人porn| 色综合天天综合在线视频| 精品国产一区二区亚洲人成毛片 | 亚洲国产精品自拍| jiyouzz国产精品久久| 精品伦理精品一区| 日产国产高清一区二区三区| 色94色欧美sute亚洲线路一久| 国产亚洲成av人在线观看导航| 日韩精品久久久久久| 欧美调教femdomvk| 一区二区三区欧美日| www.亚洲色图| 国产精品免费视频一区| 国产成人aaa| 久久久噜噜噜久久中文字幕色伊伊| 免费成人小视频| 6080日韩午夜伦伦午夜伦| 一区二区三区四区五区视频在线观看| 夫妻av一区二区| 国产欧美日韩视频在线观看| 久久99国产精品尤物| 欧美电影免费提供在线观看| 日日噜噜夜夜狠狠视频欧美人| 欧美偷拍一区二区| 亚洲18女电影在线观看| 欧美日韩视频在线观看一区二区三区 | 美女mm1313爽爽久久久蜜臀| 欧美日韩国产乱码电影| 水野朝阳av一区二区三区| 欧美自拍偷拍午夜视频| 亚洲一二三级电影| 欧美一三区三区四区免费在线看| 午夜视频在线观看一区二区| 精品1区2区3区| 日韩成人午夜精品| 欧美成人精品1314www| 国产另类ts人妖一区二区| 国产视频一区二区在线| 成人激情午夜影院| 亚洲精品少妇30p| 在线观看视频91| 日韩影视精彩在线| 欧美mv日韩mv国产网站app| 国产精品99久久久久久有的能看 | 亚洲精品免费一二三区| 日本韩国欧美三级| 欧美a一区二区| 国产欧美日产一区| 色综合久久综合| 日av在线不卡| 日韩一区有码在线| 3atv在线一区二区三区| 国产一区二区三区久久久| 国产精品初高中害羞小美女文| 欧美综合视频在线观看| 久久se这里有精品| 一区二区三区精品在线观看| 欧美一区二区日韩| av午夜一区麻豆| 日本va欧美va精品| 亚洲男人电影天堂| 欧美大片一区二区三区| 91在线免费播放| 韩国中文字幕2020精品| 亚洲一区二区在线观看视频| 精品久久久三级丝袜| 在线观看精品一区| 国产精品1024久久| 日韩一区精品视频| 亚洲女人****多毛耸耸8| 日韩一区二区三区精品视频| www.性欧美| 精品一区二区在线播放| 亚洲一区国产视频| 欧美国产欧美综合| 日韩精品在线一区| 欧美三级视频在线观看| 99久久国产综合精品女不卡| 久久爱www久久做| 日韩精品久久久久久| 亚洲欧洲精品天堂一级| 欧美精品一区二区三区视频| 欧美午夜一区二区三区| 91在线播放网址| 成人午夜短视频| 蜜臀a∨国产成人精品| 亚洲国产日韩av| 伊人性伊人情综合网| 国产精品乱码一区二区三区软件| 日韩欧美二区三区| 日韩视频中午一区| 欧美一级在线视频| 欧美一区二区三区四区五区| 在线观看视频一区二区欧美日韩| 99久久精品免费观看| 成人看片黄a免费看在线| 国产麻豆精品视频| 国产美女久久久久| 国产成人在线色| 成人午夜激情影院| 成人国产精品免费观看视频| 成人va在线观看| 91在线看国产| 色偷偷成人一区二区三区91 | 在线看日韩精品电影| 91天堂素人约啪| 91国产免费观看| 91免费国产在线| 一本色道亚洲精品aⅴ| 91成人在线免费观看| 在线免费观看不卡av| 欧美精品少妇一区二区三区| 欧美日韩一区高清| 日韩一级精品视频在线观看| 日韩一区二区电影| 国产午夜亚洲精品不卡| 国产精品无码永久免费888| 中文字幕一区二区在线观看| 一区二区三区在线视频观看58| 亚洲一区二区在线观看视频| 日韩精品视频网站| 激情综合色综合久久综合| 国产白丝精品91爽爽久久| 91欧美一区二区| 欧美一卡二卡三卡| 欧美韩国日本不卡| 一区二区三区国产豹纹内裤在线| 五月婷婷综合网| 精品一区二区在线播放| 99久久婷婷国产综合精品| 欧美天堂亚洲电影院在线播放| 3d成人h动漫网站入口| 欧美韩国日本不卡| 首页欧美精品中文字幕| 国产美女视频91| 欧美体内she精高潮| 国产亚洲欧洲997久久综合| 一区二区三区久久| 国产高清在线观看免费不卡| 欧美亚洲尤物久久| 国产色爱av资源综合区| 亚洲1区2区3区视频|