freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

利用哈希技術(shù)統(tǒng)計(jì)c源程序關(guān)鍵字出現(xiàn)頻度-文庫(kù)吧

2025-07-21 20:35 本頁面


【正文】 for(i=0。iTOTAL。i++) { coutsetiosflags(ios::left)[setw(2)GetKey(KeyWords[i])] setiosflags(ios::left)setw(11)KeyWords[i]。 if((i+1)%5==0) coutendl。 } coutendl。 Select(Input())。 break。 case 6: jiemian()。 Select(Input())。 case 7: break。//退出 default: Select(Input())。 return。 }}int Read(char *filename) //讀取文件{ char word[MAXLEN],ch。 int i。 FILE *read。 if( (read=fopen(filename,r))==NULL ) //只讀方式打開一個(gè)文本文件,只允許讀數(shù)據(jù) { cout文件不存在,請(qǐng)確認(rèn)好再輸入!endl。 return 1。 } ResetHX()。 //讀取文件前先清空哈希表 while(!feof(read)) //feof()是文件結(jié)束檢測(cè)函數(shù),如果沒有結(jié)束,返回值是0,結(jié)束了是1 { i=0。 ch=fgetc(read)。 //讀取一個(gè)字符 while(isLetter(ch)==0 amp。amp。 feof(read)==0 ) ch=fgetc(read)。 //如果不是字母的話接著讀取 while(isLetter(ch)==1 amp。amp。 feof(read)==0 ) { if(i==MAXLEN) { while(isLetter(ch)==1amp。amp。 feof(read)==0) { ch=fgetc(read)。 } i=0。 break。 } //超過關(guān)鍵字長(zhǎng)度將跳過當(dāng)前識(shí)別區(qū)域,讀取后一單詞 else { //將連續(xù)讀取的字母存在數(shù)組里,組成一個(gè)單詞 word[i++]=ch。 ch=fgetc(read)。 } } word[i]=39。\039。 //字符數(shù)組的結(jié)束標(biāo)志 if(isKeyWords(word)) { CreatHX(word)。 } } fclose(read)。 cout讀取成功,文件中關(guān)鍵字已經(jīng)存入hash表,請(qǐng)繼續(xù)操作endl。 jiemian()。 return 1。}int isLetter(char ch) //判斷是否是字母,因?yàn)殛P(guān)鍵字都是英文單詞{ if( (ch=39。a39。amp。amp。ch=39。z39。)||(ch=39。A39。amp。amp。ch=39。Z39。) ) return 1。 else return 0。 //是字母就返回1,否則返回0值} int FindHX(char *keyword) //查找哈希表,分塊查找{ int key,find,tem=0。 if(!isKeyWords(keyword)) return 1。 key=GetKey(keyword)。 if(strcmp(HS[key].keyword,keyword)==0) return key。 for(find=key+1。findHASHLEN。find++) { //線性探查法順序查找哈希表中是否已存在關(guān)鍵字 tem++。 //統(tǒng)計(jì)沖突次數(shù) if(strcmp(HS[find].keyword,keyword)==0){ HS[find].con=tem。 return find。 } } for(find=0。findkey。find++) { tem++。 if(strcmp(HS[find].keyword,keyword)==0){ HS[find].con=tem。 return find。 } } return 1。} int CreatHX(char *keyword) //建立哈希表{ int key。 if(!isKeyWords(keyword)) return 1。 key=GetKey(keyword)。 //計(jì)算哈希值 if(strlen(HS[key].keyword)0) //判斷關(guān)鍵字表中該位置是否存在關(guān)鍵字 { //已經(jīng)存在有關(guān)鍵字 if(strcmp(HS[key].keyword,keyword)==0) { //再判斷哈希表中該位置的關(guān)鍵字是否相同 HS[key].count++。 return 1。 } key=FindHX(keyword)。 //不相同,繼續(xù)查找 if(key0) { key=GetFreePos(GetKey(keyword))。 if(key0) return 1。 strcpy(HS[key].keyword,keyword)。 //將關(guān)鍵字插入哈希表 } if(key0) return 1。 HS[key].count++。 } else //該位置為空,直接將關(guān)鍵字插入該位置中 { strcpy(HS[key].keyword,keyword)。 HS[key].count++。 } return 1。}int GetFreePos(int key) //在哈希表中給關(guān)鍵字找個(gè)位置插進(jìn)去{ int find,tem=0。 if(key0||key=HASHLEN) return 1。 for(find=key+1。findHASHLEN。find++) //先找后面的位置 { tem++。 if(strlen(HS[find].keyword)==0){ HS[find].con=tem。 return find。 } } for(find=0。findkey。find++) //再找前面的位置 { tem++。 if(strlen(HS[find].keyword)==0){ HS[find].con=tem。 return find。 } } return 1。 //哈希表已滿}void ResetHX() //重置哈希表,{ int i。 for(i=0。iHASHLEN。i++) { strcpy(HS[i].keyword,)。 //不能用等號(hào)賦值 HS[i].count=0。 HS[i].con=0。 }} int GetKey(char *keyword) //哈西函數(shù){ //Hash函數(shù)為:Hash(Key)=[(Key的首字母序號(hào))*100+(Key的尾字母序號(hào))] Mod 41 return ( keyword[0]*100+keyword[strlen(keyword)1] ) % 41。 //這里不要忘了減1} int isKeyWords(char *word) //判斷是否關(guān)鍵字{ int i。 for(i=0。iTOTAL。i++) if(strcmp(word,KeyWords[i])==0) return 1。 return 0。} 五.程序測(cè)試:文件一:HASH序號(hào) 關(guān)鍵字 頻數(shù) 沖突數(shù)0 while 9 03 return 8 04 long 3 05 typedef 1 06 goto 2 07 if 38 010 do 1 013 void 15 014 case 10 015 default 1 019 sizeof 1 021 int 29 122 switch 1 024 else 16 027 char 13 228 unsigned 2 033 struct 4 034 break 10 0總關(guān)鍵字?jǐn)?shù):164總沖突數(shù):3文件二:HASH序號(hào) 關(guān)鍵字 頻數(shù) 沖突數(shù)0 while 11 03 return 130 04 long 26 06 goto 1 07 if 194 010 do 14 013 void 1 014 case 12 015 default 5 016 static 37 019 sizeof 12 021 interrupt 9 7022 int 69 123 for 75 224 else 68 225 far 1 126 switch 1 027 char 73 128 unsigned 1 033 extern 5 2434 break 20 2435 struct 22 236 short 2 0總關(guān)鍵字?jǐn)?shù):789總沖突數(shù):127由以上數(shù)據(jù)可知,掃描不同的源文件,在模相同的情況下,其關(guān)鍵字經(jīng)掃描后在Hash表中存儲(chǔ)的各項(xiàng)數(shù)據(jù)次序基本相同;并且,由程序運(yùn)行結(jié)果可知Hash表空間開辟越大其沖突次數(shù)也并非一定減少。六、總結(jié)這次做課程設(shè)計(jì),是一次完整的播種與收獲的過程,為它揮汗,因它煩憂,同時(shí)也因它而雀躍。在寫代碼期間,每天長(zhǎng)時(shí)間坐在電腦顯示器前面,酸脹的眼睛,手旁滿是手工演算的草稿,有時(shí)為了實(shí)現(xiàn)某個(gè)功能絞盡腦汁,坐站都不是。當(dāng)程序遇到問題運(yùn)算結(jié)果與演算結(jié)果不匹配而又怎么也找不到問題的所在時(shí),那個(gè)痛苦啊,真的是有一絕不想再有二了。當(dāng)然,也有快樂的時(shí)候,那自然是當(dāng)順利實(shí)現(xiàn)某方面功能的時(shí)候。 編程需要有耐心,尤其實(shí)在單步調(diào)試的時(shí)候,更是馬虎不得,有時(shí)候關(guān)鍵就是那么一步,錯(cuò)過了就得從頭來過了。編程也需要勇氣,要勇于發(fā)現(xiàn)自己的錯(cuò)誤,也要勇于推翻自己之前的思路,要堅(jiān)信“沒有最好,只有更好”。編程,最好是一鼓作氣,得天天“摸摸”它,時(shí)時(shí)想著它,要是過一陣再去碰它那就得先去讀懂自己的程序了,一切的一切幾乎都得從頭開始。編程需要細(xì)心,有時(shí)一個(gè)不注意小錯(cuò)誤就能引出大問題。編程也需要規(guī)范,不僅為了他人能看得懂程序,也為了方便自己以后程序的更改與進(jìn)一步的完善。 總之,做完課程設(shè)計(jì)使我感覺成長(zhǎng)了許多,有艱辛的付出才會(huì)有收獲,它使我收獲了那份喜悅,更使我增強(qiáng)了自信心。以下是附加文檔,不需要的朋友下載后刪除,謝謝頂崗實(shí)習(xí)總結(jié)專題13篇第一篇:頂崗實(shí)習(xí)總結(jié)為了進(jìn)一步鞏固理論知識(shí),將理論與實(shí)踐有機(jī)地結(jié)合起來,按照學(xué)校的計(jì)劃要求,本人進(jìn)行了為期個(gè)月的頂崗實(shí)習(xí)。這個(gè)月里的時(shí)間里,經(jīng)過我個(gè)人的實(shí)踐和努力學(xué)習(xí),在同事們的指導(dǎo)和幫助下,對(duì)村的概況和村委會(huì)有了一定的了解,對(duì)村村委會(huì)的日常工作及內(nèi)部制度有了初步的認(rèn)識(shí),同時(shí),在與其他工作人員交談過程中學(xué)到了許多難能可貴經(jīng)驗(yàn)和知識(shí)。通過這次實(shí)踐,使我對(duì)村委會(huì)實(shí)務(wù)有所了解,也為我今后的順利工作打下了良好的基礎(chǔ)。一、實(shí)習(xí)工作情況村是一個(gè)(此處可添加一些你實(shí)習(xí)的那個(gè)村和村委會(huì)的介紹)我到村村委會(huì)后,先了解了村的發(fā)展史以及村委會(huì)各個(gè)機(jī)構(gòu)的設(shè)置情況,村委會(huì)的規(guī)模、人員數(shù)量等,做一些力所能及的工作,幫忙清理衛(wèi)生,做一些后勤工作;再了解村的文化歷史,認(rèn)識(shí)了一些同事,村委會(huì)給我安排了一個(gè)特定的指導(dǎo)人;然后在村委會(huì)學(xué)習(xí)了解其他人員工作情況,實(shí)習(xí)期間我努力將自己在學(xué)校所學(xué)的理論知識(shí)向?qū)嵺`方面轉(zhuǎn)化,盡量做到理論與實(shí)踐相結(jié)合。在實(shí)習(xí)期間我遵守了工作紀(jì)律,不遲到、不早退,認(rèn)真完成領(lǐng)導(dǎo)交辦的工作。我在村委會(huì)主要是負(fù)責(zé)管理日常信件的工作,這個(gè)工作看似輕松,卻是責(zé)任重大,來不得辦點(diǎn)馬虎。一封
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1