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

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

?? algo0409.cpp

?? 嚴(yán)蔚敏的數(shù)據(jù)結(jié)構(gòu)源碼及演示系統(tǒng)
?? CPP
字號(hào):
#define  MaxBookNum      1000    // 假設(shè)只對(duì)1000本書(shū)建索引表
#define  MaxKeyNum       2500    // 索引表的最大容量
#define  MaxLineLen       500    // 書(shū)目串的最大長(zhǎng)度
#define  MaxWordNum        10    // 詞表的最大容量
#define  MaxWordLength     30    // 單詞的最大長(zhǎng)度

typedef int Boolean;

typedef struct {
    char    item[MaxWordNum][MaxWordLength];  // 字符串的數(shù)組
    int     last;        // 詞表的長(zhǎng)度
} WordListType;          // 詞表類(lèi)型(順序表)

typedef struct {
    HString   key;       // 關(guān)鍵詞
    NLinkList bnolist;   // 存放書(shū)號(hào)索引的鏈表
} IdxTermType;           // 索引項(xiàng)類(lèi)型

typedef struct {
    IdxTermType  item[MaxKeyNum+1];
    int          last;
} IdxListType;           // 索引表類(lèi)型(有序表)

//------ 基本操作 ------
void InitIdxList(IdxListType &idxlist);
   // 初始化操作,置索引表idxlist為空表,即idxlist.last=0,
   // 且在idxlist.item[0]設(shè)一空串
void GetLine(FILE *f);
   // 從文件f讀入一個(gè)書(shū)目信息到書(shū)目串緩沖區(qū)buf
Status ExtractKeyWord(char *Buffer, WordListType &w, int &bno);
   // 從buf中提取書(shū)名關(guān)鍵詞到詞表wdlist,書(shū)號(hào)存入bno
Status InsertIdxList(IdxListType &idxlist, ElemType bno);  
   // 將書(shū)號(hào)為bno的書(shū)名關(guān)鍵詞按詞典順序插入索引表idxlist
Status PutText(FILE *g, IdxListType idxlist);           
   // 將生成的索引表idxlist輸出到文件g
void PrintFile(FILE *FileName);

Status InsertIdxList(IdxListType &idxlist, int bno);   // 算法4.10
   // 索引表插入算法
void GetWord(int i, HString &wd);                      // 算法4.11
   // 用wd返回詞表wdlist中第i個(gè)關(guān)鍵詞。
int Locate(IdxListType &idxlist, HString wd, Boolean &b); // 算法4.12
   // 在索引表idxlist中查詢(xún)是否存在與wd相等的關(guān)鍵詞。
   // 若存在,則返回其在索引表中的位置,
   // 且b取值TRUE;否則返回插入位置,且b取值FALSE
void InsertNewKey(IdxListType &idxlist, int i, HString wd);//算法4.13
   // 在索引表idxlist的第i項(xiàng)上插入新關(guān)鍵詞wd,
   // 并初始化書(shū)號(hào)索引的鏈表為空表
Status InsertBook(IdxListType &idxlist, int i, int bno); // 算法4.14
   // 在索引表idxlist的第i項(xiàng)中插入書(shū)號(hào)為bno的索引

//------ 主要變量 ------
char          buf[MaxLineLen];   // 書(shū)目串緩沖區(qū)
WordListType  wdlist;    // 詞表
IdxListType   idxlist;   // 索引表

//------ 主函數(shù) ------
int main(int argc, char* argv[]) {  // 算法4.9
  FILE *f,*g;
  int BookNo;
  printf("**************************************************\n");
  printf("       《數(shù)據(jù)結(jié)構(gòu)》(C語(yǔ)言版) 嚴(yán)蔚敏 吳偉民 編著     \n");
  printf("                算法4.9-4.14(參見(jiàn)圖4.9)          \n");
  printf("**************************************************\n\n");
  if ((f = fopen ("Algo0409BookInfo.txt", "r"))==NULL) {
    printf("ERROR in open BookInfo.txt!\n");
    exit(1);
  }
  if ((g = fopen ("Algo0409BookIdx.txt", "w"))==NULL) {
    printf("ERROR in open BookIdx.txt!\n");
    exit(1);
  }
  printf("書(shū)目文件:\n");
  PrintFile(f);
  InitIdxList(idxlist);         // 初始化索引表idxlist為空表
  while (!feof (f)) {
    GetLine (f);                // 從文件f讀入一個(gè)書(shū)目信息到buf
    ExtractKeyWord(buf,wdlist,BookNo);  
        // 從buf提取關(guān)鍵詞到詞表,書(shū)號(hào)存入BookNo
    InsertIdxList(idxlist, BookNo);  // 書(shū)號(hào)為BookNo的關(guān)鍵詞插入索引表
  }
  PutText(g, idxlist);          // 將生成的索引表idxlist輸出到文件g
  fclose(f);
  fclose(g);
  printf("對(duì)書(shū)目文件進(jìn)行處理后的索引文件:\n");
  if ((g = fopen ("Algo0409BookIdx.txt", "r"))==NULL) {
    printf("ERROR in open BookIdx.txt!\n");
    exit(1);
  }
  PrintFile(g);
  fclose(g);
  printf("按任意鍵,結(jié)束 ......\n");
  getch();
  return 0;
} // main

Status InsertIdxList(IdxListType &idxlist,  int bno) {  // 算法4.10
  int i,j;
  HString wd;
  Boolean b;
  for (i=0;  i<wdlist.last;  i++) {
    GetWord(i, wd);   
    j = Locate(idxlist, wd, b);
    if (!b)
      InsertNewKey(idxlist, j, wd);  //  插入新的索引項(xiàng)
    InsertBook(idxlist, j, bno);     //  插入書(shū)號(hào)索引
  }
  return OK;
} // InsertIdxList

void GetWord(int i,  HString &wd) {  // 算法4.11
  char *p;
  p = *(wdlist.item +i);  // 取詞表中第i個(gè)字符串
  StrAssign(wd, p);       // 生成關(guān)鍵字字符串
} // GetWord

int Locate(IdxListType &idxlist, HString wd, Boolean &b) { // 算法4.12
  int i,m;
  for (i = idxlist.last-1; 
       ((m = StrCompare(idxlist.item[i].key, wd)) > 0);  --i);
  if (m==0) { // 找到
    b = TRUE;
    return i;  
  } else {  // 沒(méi)找到
    b = FALSE;
    return i+1;
  }         
} // Locate

void InsertNewKey(IdxListType &idxlist, int i, HString wd) {//算法4.13
  int j;
  for (j=idxlist.last-1;  j>=i;  --j)  // 后移索引項(xiàng)
    idxlist.item[j+1] = idxlist.item[j];
  // 插入新的索引項(xiàng)
  StrCopy(idxlist.item[i].key, wd);    // 串賦值
  InitList(idxlist.item[i].bnolist);   // 初始化書(shū)號(hào)索引表為空表
  ++idxlist.last;
} // InsertNewKey

Status InsertBook(IdxListType &idxlist, int i, int bno) {  //算法4.14
  NLink p;
  if (!MakeNode (p, bno)) 
    return OVERFLOW;                   // 分配失敗
  Append(idxlist.item[i].bnolist, p);  // 插入新的書(shū)號(hào)索引
  return OK;
} // InsertBook

//------ 基本操作 -------
void InitIdxList(IdxListType &idxlist) {
  int i;
  idxlist.last= 0;
  for(i=0; i<MaxKeyNum+1; i++)
    InitList(idxlist.item[i].bnolist);
}

Status ExtractKeyWord(char* Buffer,WordListType &w,int &Num) {
  int i=0, j=0, k=0;
  bool Ignore;
  char TempChar[30];
  char IgnoreChar[7][10] = { "to","of","the","and","not","or","if" };
  w.last=0;
  while(*(Buffer+i)!= ' ') { TempChar[i]=*(Buffer+i);  i++; }
  i++;
  TempChar[i]= '\0';
  Num=atoi(TempChar);
  while(*(Buffer+i)!='\n' && *(Buffer+i)!='\0') { 
    // 每個(gè)字符串末尾都有作為結(jié)束符'\n'
    if(*(Buffer+i)!=' ') { // 若非空字符,則把當(dāng)前字符加入新的字符串中
      if(*(Buffer+i)>='A' && *(Buffer+i)<='Z')  // 大寫(xiě)字母轉(zhuǎn)換為小寫(xiě)
        *(Buffer+i)-='A'-'a';
      w.item[j][k]=*(Buffer+i);
      k++;  i++;
    } else {               // 如果是空字符,這是則開(kāi)始另一個(gè)字符串
      Ignore=false;
      w.item[j][k++]='\0';
      for (int m=0; m<7; m++)
        if(strcmp(w.item[j],IgnoreChar[m])==0) 
          { Ignore=true;  break; }
      if (!Ignore) { j++;  k=0;  i++;  w.last++; }
      else { k=0;  i++; }
    }
  }
  w.item[j][k++]='\0';     // 把最后一個(gè)字符串收尾
  Ignore=false;
  for (int m=0; m<7; m++)
    if (strcmp(w.item[j],IgnoreChar[m])==0) 
      { Ignore=true;  break; }
  if (!Ignore) w.last++;   // 并把最大數(shù)加1
  return OK;
}

void GetLine(FILE *f) {
  fgets(buf, MaxLineLen, f);  // buf是全局?jǐn)?shù)組變量
}

Status PutText(FILE *IdxFile, IdxListType MyIdx) { 
  int i,j,k;
  NLink p;
  for(i=0; i<MyIdx.last; i++) {
    for(j=0; j<MyIdx.item[i].key.length; j++)
      putc(*(MyIdx.item[i].key.ch+j ),IdxFile);
    putc('\t',IdxFile);
    if (MyIdx.item[i].key.length < 8) putc('\t',IdxFile);
    p = MyIdx.item[i].bnolist.head;
    for (k=0; k<MyIdx.item[i].bnolist.len; k++) {
      p = p->next;
      fprintf(IdxFile,"%03d",p->data);
      putc(' ', IdxFile);
    }
    putc('\n',IdxFile);
  }
  return OK;
}
	
void PrintFile(FILE *FileName) {  // 輔助函數(shù)
  char ch;
  rewind(FileName);
  ch=getc(FileName);
  while (ch!=EOF) {
    putchar(ch);
    ch=getc(FileName);
  }
  printf("\n");
  rewind(FileName);
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久久影院色老大| 久久综合久久99| 国产精品免费视频网站| 日韩av午夜在线观看| 99久久综合狠狠综合久久| 日韩欧美亚洲国产精品字幕久久久| 亚洲日本在线a| 久久99精品久久久久久动态图| 色婷婷av一区二区三区之一色屋| 国产三级一区二区| 美腿丝袜亚洲一区| 欧美日产国产精品| 亚洲欧美在线视频观看| 国内精品视频666| 日韩欧美中文字幕精品| 亚洲r级在线视频| 色综合久久中文字幕综合网| 中文欧美字幕免费| 国产精品一区一区| 精品日韩99亚洲| 日日夜夜一区二区| 欧美性色欧美a在线播放| 中文字幕日韩一区| 成人一区在线观看| 欧美经典一区二区| 国产乱国产乱300精品| 日韩一区二区免费高清| 亚洲成av人综合在线观看| 91丨九色丨尤物| 国产精品视频免费| 成人av电影在线网| 国产精品水嫩水嫩| 国产成人在线免费观看| 2020国产精品| 国产精品1区2区3区在线观看| 日韩精品一区二区三区在线播放| 亚洲成人av在线电影| 欧美日韩中字一区| 亚洲风情在线资源站| 欧美色欧美亚洲另类二区| 亚洲午夜在线视频| 欧美精品一级二级| 五月天欧美精品| 制服丝袜激情欧洲亚洲| 天天做天天摸天天爽国产一区| 欧美日韩国产小视频在线观看| 亚洲国产一二三| 欧美日产国产精品| 免费高清在线视频一区·| 欧美大片在线观看| 国产乱理伦片在线观看夜一区| 久久女同精品一区二区| 国产成人免费网站| 亚洲天堂2014| 欧洲一区二区av| 视频在线在亚洲| 精品久久国产字幕高潮| 国产精品影视网| 亚洲国产经典视频| 97se亚洲国产综合自在线不卡| 亚洲日本乱码在线观看| 欧美三级欧美一级| 久久精品国产精品青草| 久久久久久久久久久99999| 成人黄色小视频在线观看| 最新日韩av在线| 欧美色综合久久| 毛片一区二区三区| 国产区在线观看成人精品| eeuss鲁一区二区三区| 亚洲国产中文字幕在线视频综合| 制服丝袜一区二区三区| 国产一本一道久久香蕉| 亚洲手机成人高清视频| 欧美三级资源在线| 国内精品嫩模私拍在线| 国产精品不卡在线观看| 欧美日韩在线综合| 狠狠色丁香久久婷婷综合_中 | 精品一区二区三区影院在线午夜| www国产成人| 色婷婷亚洲精品| 五月婷婷综合网| 久久中文娱乐网| 色噜噜狠狠一区二区三区果冻| 青青草精品视频| 中文无字幕一区二区三区| 色欧美片视频在线观看在线视频| 日韩成人dvd| 日本一区二区三区久久久久久久久不 | 亚洲在线一区二区三区| 日韩午夜电影在线观看| 高清国产午夜精品久久久久久| 亚洲精品国产a| 欧美成人精品3d动漫h| 99热在这里有精品免费| 国产成人在线色| 亚洲不卡一区二区三区| 久久久久国产精品麻豆| 在线欧美一区二区| 国产又黄又大久久| 亚洲午夜久久久久久久久电影院| 久久亚洲春色中文字幕久久久| 91丨九色丨国产丨porny| 蜜臀久久99精品久久久画质超高清| 国产女人水真多18毛片18精品视频| 欧美色倩网站大全免费| 成人av动漫在线| 老司机精品视频一区二区三区| 综合在线观看色| 精品福利在线导航| 91久久免费观看| 国产激情精品久久久第一区二区| 亚洲成人一区在线| 国产精品毛片无遮挡高清| 日韩欧美一级二级| 欧美色综合网站| 91亚洲男人天堂| 国产成人精品网址| 免费日韩伦理电影| 一区二区不卡在线视频 午夜欧美不卡在 | 国产精品沙发午睡系列990531| 91电影在线观看| 粉嫩av亚洲一区二区图片| 热久久免费视频| 亚洲国产一区二区三区| 国产精品传媒视频| 久久青草欧美一区二区三区| 欧美日韩精品一区二区三区蜜桃| 不卡免费追剧大全电视剧网站| 国产在线精品一区二区| 日韩一区欧美二区| 一区二区三区四区蜜桃| 欧美国产日韩a欧美在线观看| 日韩欧美一区二区三区在线| 欧美色网一区二区| 色综合欧美在线视频区| 成人av中文字幕| 国产精品12区| 精品系列免费在线观看| 视频在线观看一区二区三区| 亚洲一区二区五区| 亚洲激情在线播放| 自拍av一区二区三区| 欧美国产欧美亚州国产日韩mv天天看完整 | 天天影视色香欲综合网老头| 亚洲美女精品一区| 亚洲图片你懂的| 中文字幕中文字幕一区二区| 久久蜜桃一区二区| ww久久中文字幕| 欧美tickling挠脚心丨vk| 日韩三级免费观看| 欧美一区二区三区免费| 91精品在线免费观看| 欧美精品一二三| 制服丝袜av成人在线看| 欧美乱妇20p| 91精品久久久久久蜜臀| 欧美猛男男办公室激情| 欧美一区日韩一区| 56国语精品自产拍在线观看| 欧美日本一区二区在线观看| 欧美男女性生活在线直播观看| 欧美日韩国产综合视频在线观看| 欧美肥胖老妇做爰| 欧美一区二区三区在线观看视频| 欧美一区二区视频网站| 91.com视频| 欧美电影精品一区二区| 精品福利一区二区三区免费视频| 亚洲精品在线免费播放| 国产午夜精品一区二区三区嫩草| 国产婷婷精品av在线| 国产精品三级视频| 一个色在线综合| 丝袜国产日韩另类美女| 另类的小说在线视频另类成人小视频在线 | 久久久三级国产网站| 久久男人中文字幕资源站| 国产喷白浆一区二区三区| 亚洲欧洲日韩女同| 亚洲精品国产成人久久av盗摄| 亚洲va欧美va人人爽| 免费成人av在线播放| 国产精品一区二区在线观看不卡 | 国产成人小视频| 99视频有精品| 欧美日韩精品一区二区三区四区 | 91麻豆成人久久精品二区三区| 91久久国产综合久久| 51精品视频一区二区三区| 欧美成人伊人久久综合网| 日本一区二区三区高清不卡| 亚洲狠狠丁香婷婷综合久久久| 天使萌一区二区三区免费观看| 国产一区二区三区精品视频| 99国内精品久久| 91麻豆精品久久久久蜜臀| 国产日本欧洲亚洲|