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

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

?? algo4-3.cpp

?? 40多版經典教材《數據結構》(嚴蔚敏、吳偉民著)全部代碼實現。目錄下TC是標準C代碼C文件。VC是標準C++代碼CPP文件。
?? CPP
字號:
 // algo4-3.cpp 根據書目文件bookinfo.txt生成書名關鍵詞索引文件bookidx.txt,
 // 為運行algo4-4.cpp做準備,算法4.9~4.14
 #include"c1.h"
 typedef int ElemType;
 #include"c2-5.h"
 #include"bo2-6.cpp"
 #include"c4-2.h"
 #include"bo4-2.cpp"

 #define MaxKeyNum 25 // 索引表的最大容量(關鍵詞的最大數目)
 #define MaxLineLen 52 // 書目串(書目文件的1行)buf的最大長度
 #define MaxNoIdx 10 // 非索引詞(也是一個書目中關鍵詞)的最大數目

 struct WordListType // 一個書目的詞表(順序表)和非索引詞表(有序表)共用類型
 {
   char *item[MaxNoIdx]; // 詞表(字符串)指針數組
   int last; // 詞的數量
 };

 struct IdxTermType // 索引項類型
 {
   HString key; // 關鍵詞(堆分配類型,c4-2.h)
   LinkList bnolist; // 存放書號索引的鏈表(c2-5.h)
 };

 struct IdxListType // 索引表類型(有序表)
 {
   IdxTermType item[MaxKeyNum+1]; // 索引項數組類型
   int last; // 關鍵詞的個數
 };

 // 全局變量
 char buf[MaxLineLen+1]; // 當前書目串(包括'\0')
 WordListType wdlist,noidx; // 暫存一種書的詞表,非索引詞表

 void InitIdxList(IdxListType &idxlist)
 { // 初始化操作,置索引表idxlist為空表,且在idxlist.item[0]設一空串
   idxlist.last=0;
   InitString(idxlist.item[0].key); // 初始化[0]單元,函數在bo4-2.cpp中
   InitList(idxlist.item[0].bnolist); // 初始化[0]單元,函數在bo2-6.cpp中
 }

 void ExtractKeyWord(int &BookNo)
 { // 從buf中提取書名關鍵詞到詞表wdlist,書號存入BookNo
   int i,l,f=1; // f是字符串buf結束標志 0:結束 1:未結束
   char *s1,*s2;
   for(i=1;i<=wdlist.last;i++)
   { // 釋放上一個書目在詞表wdlist的存儲空間
     free(wdlist.item[i]);
     wdlist.item[i]=NULL;
   }
   wdlist.last=0; // 初始化詞表wdlist的詞數量
   BookNo=atoi(buf); // 將前幾位數字轉化為整數,賦給書號BookNo
   s1=&buf[4]; // s1指向書名的首字符
   while(f)
   { // 提取書名關鍵詞到詞表wdlist
     s2=strchr(s1,' '); // s2指向s1后的第一個空格,如沒有,返回NULL
     if(!s2) // 到串尾(沒空格)
     {
       s2=strchr(s1,'\12'); // s2指向buf的最后一個字符(回車符10)
       f=0;
     }
     l=s2-s1; // 單詞長度
     if(s1[0]>='A'&&s1[0]<='Z') // 單詞首字母為大寫
     { // 寫入詞表
       wdlist.item[wdlist.last]=(char *)malloc((l+1)*sizeof(char)); // 生成串空間(包括'\0')
       for(i=0;i<l;i++)
         wdlist.item[wdlist.last][i]=s1[i]; // 寫入詞表
       wdlist.item[wdlist.last][l]=0; // 串結束符
       for(i=0;i<noidx.last&&(l=strcmp(wdlist.item[wdlist.last],noidx.item[i]))>0;i++);
       // 查找是否為非索引詞
       if(!l) // 是非索引詞
       {
         free(wdlist.item[wdlist.last]); // 從詞表中刪除該詞
         wdlist.item[wdlist.last]=NULL;
       }
       else
	 wdlist.last++; // 詞表長度+1
     }
     s1=s2+1; // s1移動到下一個單詞的首字符處
   };
 }

 void GetWord(int i,HString &wd)
 { // 用wd返回詞表wdlist中第i個關鍵詞,算法4.11
   StrAssign(wd,wdlist.item[i]); // 生成關鍵字字符串 bo4-2.cpp
 }

 int Locate(IdxListType &idxlist,HString wd,Status &b)
 { // 在索引表idxlist中查詢是否存在與wd相等的關鍵詞。若存在,則返回其
   // 在索引表中的位置,且b取值TRUE;否則返回插入位置,且b取值FALSE,算法4.12
   int i,m;
   for(i=idxlist.last;(m=StrCompare(idxlist.item[i].key,wd))>0;--i); // bo4-2.cpp
   if(m==0) // 找到
   {
     b=TRUE;
     return i;
   }
   else
   {
     b=FALSE;
     return i+1;
   }
 }

 void InsertNewKey(IdxListType &idxlist,int i,HString wd)
 { // 在索引表idxlist的第i項上插入新關鍵詞wd,并初始化書號索引的鏈表為空表,算法4.13
   int j;
   for(j=idxlist.last;j>=i;--j) // 后移索引項
     idxlist.item[j+1]=idxlist.item[j];
   InitString(idxlist.item[i].key); // bo4-2.cpp
   StrCopy(idxlist.item[i].key,wd); // 串拷貝插入新的索引項 bo4-2.cpp
   InitList(idxlist.item[i].bnolist); // 初始化書號索引表為空表 bo2-6.cpp
   idxlist.last++;
 }

 void InsertBook(IdxListType &idxlist,int i,int bno)
 { // 在索引表idxlist的第i項中插入書號為bno的索引,算法4.14
   Link p;
   MakeNode(p,bno); // 分配結點 bo2-6.cpp
   p->next=NULL;
   Append(idxlist.item[i].bnolist,p); // 插入新的書號索引 bo2-6.cpp
 }

 void InsIdxList(IdxListType &idxlist,int bno)
 { // 將書號為bno的關鍵詞插入索引表,算法4.10
   int i,j;
   Status b;
   HString wd;
   InitString(wd); // bo4-2.cpp
   for(i=0;i<wdlist.last;i++)
   {
     GetWord(i,wd);
     j=Locate(idxlist,wd,b); // 關鍵詞的位置或待插入的位置(當索引表中不存在該詞)
     if(!b) // 索引表中不存在關鍵詞wd
       InsertNewKey(idxlist,j,wd); // 在索引表中插入新的索引項
     InsertBook(idxlist,j,bno); // 插入書號索引
   }
 }

 void PutText(FILE *f,IdxListType idxlist)
 { // 將生成的索引表idxlist輸出到文件f
   int i,j;
   Link p;
   fprintf(f,"%d\n",idxlist.last);
   for(i=1;i<=idxlist.last;i++)
   {
     for(j=0;j<idxlist.item[i].key.length;j++)
       fprintf(f,"%c",idxlist.item[i].key.ch[j]); // HString類型串尾沒有\0,只能逐個字符輸出
     fprintf(f,"\n%d\n",idxlist.item[i].bnolist.len);
     p=idxlist.item[i].bnolist.head;
     for(j=1;j<=idxlist.item[i].bnolist.len;j++)
     {
       p=p->next;
       fprintf(f,"%d ",p->data);
     }
     fprintf(f,"\n");
   }
 }

 void main()
 { // 算法4.9
   FILE *f; // 任何時間最多打開一個文件
   IdxListType idxlist; // 索引表
   int BookNo; // 書號變量
   int k;
   if(!(f=fopen("NoIdx.txt","r"))) // 打開非索引詞文件
     exit(OVERFLOW);
   fscanf(f,"%d",&noidx.last); // 讀取非索引詞個數
   for(k=0;k<noidx.last;k++) // 把非索引詞文件的內容依次拷到noidx中
   {
     fscanf(f,"%s",buf);
     noidx.item[k]=(char*)malloc((strlen(buf)+1)*sizeof(char));
     strcpy(noidx.item[k],buf);
   }
   fclose(f); // 關閉非索引詞文件
   if(!(f=fopen("BookInfo.txt","r"))) // 打開書目文件
     exit(FALSE);
   InitIdxList(idxlist); // 設索引表idxlist為空,并初始化[0]單元
   while(fgets(buf,MaxLineLen,f)) // 由書目文件讀取1行信息到buf成功
   {
     ExtractKeyWord(BookNo);//將buf中的書號存入BookNo,關鍵詞提取到詞表(當前書目的關鍵詞表)中
     InsIdxList(idxlist,BookNo); // 將書號為BookNo的關鍵詞及書號插入索引表idxlist中
   }
   fclose(f); // 關閉書目文件
   if(!(f=fopen("BookIdx.txt","w"))) // 打開書名關鍵詞索引文件
     exit(INFEASIBLE);
   PutText(f,idxlist); // 將生成的索引表idxlist輸出到書名關鍵詞索引文件
   fclose(f); // 關閉書名關鍵詞索引文件
 }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91丝袜美女网| 91免费看视频| 成人小视频免费观看| 国产成人啪午夜精品网站男同| 国产激情视频一区二区三区欧美| 成人不卡免费av| 欧美日韩免费观看一区二区三区| 日韩欧美一级二级三级久久久| 国产精品成人午夜| 日本vs亚洲vs韩国一区三区二区| 成人免费高清在线| 欧美日韩国产天堂| 中文字幕亚洲一区二区av在线| 日韩不卡一区二区| 色综合天天综合色综合av| 精品福利一区二区三区免费视频| 亚洲精品菠萝久久久久久久| 国内欧美视频一区二区| 欧美亚一区二区| 国产精品乱码妇女bbbb| 亚洲精品成人在线| 国产精品亚洲综合一区在线观看| 欧美狂野另类xxxxoooo| 国产精品美女久久久久久久久 | 色狠狠色狠狠综合| 欧美日韩国产三级| 亚洲欧美电影院| 国产乱码字幕精品高清av| 欧美综合欧美视频| 亚洲欧洲精品一区二区三区不卡| 捆绑变态av一区二区三区| 一本一道综合狠狠老| 国产婷婷色一区二区三区四区| 午夜电影一区二区| 97久久精品人人澡人人爽| 中文字幕成人网| 国产精品综合一区二区三区| 欧美v日韩v国产v| 蜜桃av噜噜一区二区三区小说| 91久久精品网| 亚洲人妖av一区二区| 粉嫩av一区二区三区在线播放| 欧美v日韩v国产v| 麻豆精品国产传媒mv男同| 欧美日韩大陆一区二区| 不卡视频免费播放| 91精品久久久久久久91蜜桃| 亚洲一二三区不卡| 91精品国产综合久久婷婷香蕉| 视频在线观看一区| 精品电影一区二区三区| 国产**成人网毛片九色 | 精品一区二区三区免费毛片爱| 精品欧美久久久| 国产精品自拍一区| 亚洲码国产岛国毛片在线| 欧美吞精做爰啪啪高潮| 麻豆成人91精品二区三区| 久久亚洲免费视频| 成av人片一区二区| 日韩av午夜在线观看| 国产午夜一区二区三区| 色偷偷一区二区三区| 蜜臂av日日欢夜夜爽一区| 欧美精彩视频一区二区三区| 在线看国产一区| 激情五月婷婷综合| 亚洲综合久久久| 久久九九全国免费| 欧美三级视频在线播放| 国内久久精品视频| 亚洲一级二级在线| 久久久久久久久99精品| 色噜噜久久综合| 国产精品一区二区久久精品爱涩| 亚洲视频一区在线观看| 日韩一本二本av| 在线视频欧美精品| 国产麻豆午夜三级精品| 亚洲五月六月丁香激情| 日本一区二区三区国色天香| 在线播放中文一区| 99精品久久只有精品| 久久99久久精品欧美| 一区二区三区视频在线看| 久久久精品综合| 日韩一区二区三区电影在线观看 | 亚洲人亚洲人成电影网站色| 精品欧美黑人一区二区三区| 欧美午夜精品久久久久久超碰| 成人网在线免费视频| 麻豆精品视频在线观看| 午夜视频一区二区三区| 亚洲视频中文字幕| 中文字幕精品一区二区三区精品| 在线播放日韩导航| 欧美三级电影网站| 成人h动漫精品一区二| 狠狠色丁香久久婷婷综合_中| 亚洲午夜免费电影| 一区二区三区在线看| 中文字幕一区二区三区乱码在线| 精品sm在线观看| 日韩一级二级三级精品视频| 欧美日高清视频| 欧美丝袜自拍制服另类| 91国内精品野花午夜精品| 91片黄在线观看| 91亚洲永久精品| 91丨九色丨黑人外教| www.日韩大片| 99精品久久免费看蜜臀剧情介绍| 不卡影院免费观看| 成人激情午夜影院| 99re这里都是精品| 97精品久久久久中文字幕| 92国产精品观看| 91国内精品野花午夜精品| 日本精品免费观看高清观看| 日本高清视频一区二区| 欧洲一区二区三区在线| 欧美日韩在线不卡| 欧美日韩精品三区| 欧美一级搡bbbb搡bbbb| 欧美zozo另类异族| 久久久精品黄色| 国产精品免费免费| 亚洲乱码中文字幕综合| 亚洲国产日韩精品| 免费观看在线色综合| 国产精品一区在线观看你懂的| 国产成人啪免费观看软件| 波多野结衣中文字幕一区二区三区| av在线这里只有精品| 欧美视频三区在线播放| 在线不卡中文字幕播放| 久久久一区二区| 亚洲色图.com| 亚洲电影第三页| 韩国在线一区二区| 99久久婷婷国产| 欧美精品vⅰdeose4hd| 久久综合久久综合久久| 国产精品理论在线观看| 亚洲一区二区在线免费观看视频 | 欧美一区二区在线不卡| 精品国产一区二区三区久久影院| 中文字幕欧美区| 五月天亚洲婷婷| 国产精品一区三区| 欧美三级日韩在线| 久久久精品免费观看| 亚洲成人精品影院| 国产91精品精华液一区二区三区| 91在线高清观看| 日韩欧美视频在线| 亚洲精品欧美二区三区中文字幕| 青青国产91久久久久久| 99久久精品免费看国产| 精品美女一区二区三区| 亚洲免费在线播放| 激情成人综合网| 正在播放亚洲一区| 亚洲欧美日韩国产综合| 国产毛片精品视频| 欧美一级二级在线观看| 亚洲日本丝袜连裤袜办公室| 久久国产乱子精品免费女| 色综合天天综合网国产成人综合天 | 国产日韩欧美激情| 日韩国产欧美三级| 91免费观看在线| 国产欧美精品国产国产专区| 日本亚洲天堂网| 日本精品一区二区三区高清| 精品国产乱码久久| 亚洲尤物在线视频观看| 国产精品综合在线视频| 欧美一二区视频| 日本成人在线一区| 91最新地址在线播放| 国产精品久久久一本精品| 日韩不卡一二三区| 在线观看欧美日本| 欧美一区二区久久| 亚洲一区二区综合| 欧洲人成人精品| 国产精品麻豆网站| 久久国产婷婷国产香蕉| 日韩欧美久久一区| 午夜精品久久久久久久久久久| 国产精品一区在线观看你懂的| 久久婷婷久久一区二区三区| 午夜伦理一区二区| 色狠狠一区二区三区香蕉| 国产精品嫩草影院av蜜臀| 美女视频黄 久久| 99re亚洲国产精品| 国产精品久久久久久久裸模| 国产一区二区三区在线看麻豆|