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

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

?? algo11-2.c

?? 數(shù)據(jù)結(jié)構(gòu)(嚴(yán)蔚敏版)書(shū)中8.1--8.3的代碼實(shí)現(xiàn)
?? C
字號(hào):
 /* algo11-2.c 通過(guò)置換-選擇排序產(chǎn)生不等長(zhǎng)的初始?xì)w并段文件 */
 #include"c1.h"
 typedef int InfoType; /* 定義其它數(shù)據(jù)項(xiàng)的類(lèi)型 */
 #include"c10-1.h" /* 定義KeyType、RedType及SqList */
 #define MAXKEY INT_MAX
 #define RUNEND_SYMBOL INT_MAX
 #define w 6 /* 內(nèi)存工作區(qū)可容納的記錄個(gè)數(shù) */
 #define M 10 /* 設(shè)輸出M個(gè)數(shù)據(jù)換行 */
 #define N 24 /* 設(shè)大文件有N個(gè)數(shù)據(jù) */

 typedef int LoserTree[w]; /* 敗者樹(shù)是完全二叉樹(shù)且不含葉子,可采用順序存儲(chǔ)結(jié)構(gòu) */
 typedef struct
 {
   RedType rec; /* 記錄 */
   KeyType key; /* 從記錄中抽取的關(guān)鍵字 */
   int rnum; /* 所屬歸并段的段號(hào) */
 }RedNode,WorkArea[w]; /* 內(nèi)存工作區(qū),容量為w */

 void Select_MiniMax(LoserTree ls,WorkArea wa,int q) /* 算法11.6 */
 { /* 從wa[q]起到敗者樹(shù)的根比較選擇MINIMAX記錄,并由q指示它所在的歸并段 */
   int p,s,t;
   for(t=(w+q)/2,p=ls[t];t>0;t=t/2,p=ls[t])
     if(wa[p].rnum<wa[q].rnum||wa[p].rnum==wa[q].rnum&&wa[p].key<wa[q].key)
     {
       s=q;
       q=ls[t]; /* q指示新的勝利者 */
       ls[t]=s;
     }
   ls[0]=q;
 }

 void Construct_Loser(LoserTree ls,WorkArea wa,FILE *fi)
 { /* 輸入w個(gè)記錄到內(nèi)存工作區(qū)wa,建得敗者樹(shù)ls,選出關(guān)鍵字最小的記錄并由s指示 */
   /* 其在wa中的位置。算法11.7 */
   int i;
   for(i=0;i<w;++i)
     wa[i].rnum=wa[i].key=ls[i]=0; /* 工作區(qū)初始化 */
   for(i=w-1;i>=0;--i)
   {
     fread(&wa[i].rec,sizeof(RedType),1,fi); /* 輸入一個(gè)記錄 */
     wa[i].key=wa[i].rec.key; /* 提取關(guān)鍵字 */
     wa[i].rnum=1; /* 其段號(hào)為"1" */
     Select_MiniMax(ls,wa,i); /* 調(diào)整敗者 */
   }
 }

 void get_run(LoserTree ls,WorkArea wa,int rc,int *rmax,FILE *fi,FILE *fo)
 { /* 求得一個(gè)初始?xì)w并段,fi為輸入文件指針,fo為輸出文件指針。算法11.5 */
   int q;
   KeyType minimax;
   while(wa[ls[0]].rnum==rc) /* 選得的MINIMAX記錄屬當(dāng)前段時(shí) */
   {
     q=ls[0]; /* q指示MINIMAX記錄在wa中的位置 */
     minimax=wa[q].key;
     fwrite(&wa[q].rec,sizeof(RedType),1,fo); /* 將剛選得的MINIMAX記錄寫(xiě)入輸出文件 */
     fread(&wa[q].rec,sizeof(RedType),1,fi); /* 從輸入文件讀入下一記錄(改) */
     if(feof(fi))
     { /* 輸入文件結(jié)束,虛設(shè)記錄(屬"rmax+1"段) */
       wa[q].rnum=*rmax+1;
       wa[q].key=MAXKEY;
     }
     else
     { /* 輸入文件非空時(shí) */
       wa[q].key=wa[q].rec.key; /* 提取關(guān)鍵字 */
       if(wa[q].key<minimax)
       { /* 新讀入的記錄屬下一段 */
         *rmax=rc+1;
	 wa[q].rnum=*rmax;
       }
       else /* 新讀入的記錄屬當(dāng)前段 */
	 wa[q].rnum=rc;
     }
     Select_MiniMax(ls,wa,q); /* 選擇新的MINIMAX記錄 */
   }
 }

 void Replace_Selection(LoserTree ls,WorkArea wa,FILE *fi,FILE *fo)
 { /* 在敗者樹(shù)ls和內(nèi)存工作區(qū)wa上用置換-選擇排序求初始?xì)w并段,fi為輸入文件 */
   /* (只讀文件)指針,fo為輸出文件(只寫(xiě)文件)指針,兩個(gè)文件均已打開(kāi)。算法11.4 */
   int rc,rmax;
   RedType j;
   j.key=RUNEND_SYMBOL;
   Construct_Loser(ls,wa,fi); /* 初建敗者樹(shù) */
   rc=rmax=1; /* rc指示當(dāng)前生成的初始?xì)w并段的段號(hào),rmax指示wa中關(guān)鍵字所屬初始?xì)w并段的最大段號(hào) */
   while(rc<=rmax) /* "rc=rmax+1"標(biāo)志輸入文件的置換-選擇排序已完成 */
   {
     get_run(ls,wa,rc,&rmax,fi,fo); /* 求得一個(gè)初始?xì)w并段 */
     j.otherinfo=rc;
     fwrite(&j,sizeof(RedType),1,fo); /* 將段結(jié)束標(biāo)志寫(xiě)入輸出文件 */
     rc=wa[ls[0]].rnum; /* 設(shè)置下一段的段號(hào) */
   }
 }

 void print(RedType t)
 {
   printf("(%d,%d)",t.key,t.otherinfo);
 }

 void main()
 {
   RedType b,a[N]={{51,1},{49,2},{39,3},{46,4},{38,5},{29,6},{14,7},{61,8},{15,9},{30,10},{1,11},{48,12},{52,13},{3,14},{63,15},{27,16},{4,17},{13,18},{89,19},{24,20},{46,21},{58,22},{33,23},{76,24}};
   FILE *fi,*fo;
   LoserTree ls;
   WorkArea wa;
   int i,k,j=RUNEND_SYMBOL;
   char s[3],fname[4];
   fo=fopen("ori","wb"); /* 以寫(xiě)的方式打開(kāi)大文件ori */
   fwrite(a,sizeof(RedType),N,fo); /* 將數(shù)組a寫(xiě)入大文件ori */
   fclose(fo);
   fi=fopen("ori","rb"); /* 以讀的方式重新打開(kāi)大文件ori */
   printf("大文件的記錄為:\n");
   for(i=1;i<=N;i++)
   {
     fread(&b,sizeof(RedType),1,fi); /* 依次將大文件ori的數(shù)據(jù)讀入b */
     print(b); /* 輸出b的內(nèi)容 */
     if(i%M==0)
       printf("\n");
   }
   printf("\n");
   rewind(fi); /* 使fi的指針重新返回大文件ori的起始位置,以便重新讀入內(nèi)存,產(chǎn)生有序的子文件 */
   fo=fopen("out","wb"); /* 以寫(xiě)的方式打開(kāi)初始?xì)w并段文件out */
   Replace_Selection(ls,wa,fi,fo); /* 用置換-選擇排序求初始?xì)w并段 */
   fclose(fo);
   fclose(fi);
   fi=fopen("out","rb"); /* 以讀的方式重新打開(kāi)初始?xì)w并段文件out */
   printf("初始?xì)w并段文件的記錄為:\n");
   i=1;
   do
   {
     k=fread(&b,sizeof(RedType),1,fi); /* 依次將大文件out的數(shù)據(jù)讀入b */
     if(k==1)
     {
       print(b); /* 輸出b的內(nèi)容 */
       if(i++%M==0)
         printf("\n");
     }
   }while(k==1);
   printf("\n");
   rewind(fi); /* 使fi的指針重新返回大文件ori的起始位置,以便重新讀入內(nèi)存,產(chǎn)生有序的子文件 */
   k=0;
   while(!feof(fi)) /* 按段輸出初始?xì)w并段文件out */
   {
     itoa(k,s,10); /* 依次生成文件名f0,f1,… */
     strcpy(fname,"f");
     strcat(fname,s);
     fo=fopen(fname,"wb"); /* 依次以寫(xiě)的方式打開(kāi)文件f0,f1,… */
     do
     {
       i=fread(&b,sizeof(RedType),1,fi);
       if(i==1) /* fread()調(diào)用成功 */
       {
	 fwrite(&b,sizeof(RedType),1,fo); /* 將b寫(xiě)入文件f0,f1,… */
         if(b.key==j) /* 1個(gè)歸并段結(jié)束 */
         {
           k++;
           fclose(fo);
           break;
         }
       }
     }while(i==1);
   };
   fclose(fi);
   printf("共產(chǎn)生%d個(gè)初始?xì)w并段文件\n",k);
 }

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
五月天久久比比资源色| 色欲综合视频天天天| 日本亚洲免费观看| 亚洲一区二区三区国产| 亚洲精品亚洲人成人网| 亚洲欧美日韩综合aⅴ视频| 亚洲欧美一区二区在线观看| 中文字幕一区二区三区在线观看| 久久久高清一区二区三区| 亚洲精品一区二区三区福利| 精品成人在线观看| 久久久国产综合精品女国产盗摄| 日韩激情中文字幕| 日韩成人免费看| 久久国产精品免费| 国产精品888| 99riav久久精品riav| 欧美在线不卡视频| 欧美精品 国产精品| 日韩精品最新网址| 国产夜色精品一区二区av| 国产精品日韩成人| 亚洲精品欧美激情| 污片在线观看一区二区| 久久机这里只有精品| 国产黄人亚洲片| av欧美精品.com| 欧美色手机在线观看| 欧美一级爆毛片| 久久精品一区二区三区不卡牛牛| 国产精品毛片久久久久久久| 亚洲精品亚洲人成人网| 日本亚洲天堂网| 国产传媒欧美日韩成人| 99久久99久久精品免费看蜜桃| 在线看日本不卡| 91精品国产综合久久久久久漫画| 久久久久久久电影| 亚洲少妇屁股交4| 日本午夜一本久久久综合| 狠狠色狠狠色综合系列| 99视频在线精品| 91精品国产欧美一区二区| www精品美女久久久tv| 中文字幕制服丝袜一区二区三区| 亚洲国产美女搞黄色| 久久精品72免费观看| 97成人超碰视| 日韩欧美一二三| 亚洲欧美日韩国产综合| 日韩电影在线免费| 波多野结衣中文一区| 欧美日韩成人在线一区| 国产色婷婷亚洲99精品小说| 亚洲自拍偷拍麻豆| 极品美女销魂一区二区三区免费| av电影在线观看一区| 欧美一区二区在线视频| 国产精品大尺度| 奇米影视一区二区三区小说| 91在线视频官网| 日韩精品一区二区三区在线观看 | 日韩理论片中文av| 天堂蜜桃一区二区三区| 99热这里都是精品| 欧美一激情一区二区三区| 亚洲欧美日韩国产手机在线| 极品销魂美女一区二区三区| 91成人在线观看喷潮| 久久久精品免费网站| 日韩精品视频网| 色综合久久久久综合99| 久久久久久夜精品精品免费| 丝袜美腿高跟呻吟高潮一区| 99国产精品视频免费观看| 精品国产91乱码一区二区三区 | 欧美mv和日韩mv国产网站| 中文字幕亚洲视频| 国产精品一区二区无线| 欧美精品乱码久久久久久按摩 | 精品在线视频一区| 欧美日韩一区二区三区四区| 日韩理论片网站| 国产91精品免费| 精品国产不卡一区二区三区| 日韩av网站在线观看| 欧美视频一二三区| 亚洲精品乱码久久久久久日本蜜臀| 国产高清在线精品| 欧美大片拔萝卜| 日韩国产欧美在线播放| 欧美日韩一区三区四区| 一片黄亚洲嫩模| 91影院在线免费观看| 国产精品欧美一区喷水| 国产电影精品久久禁18| 久久免费看少妇高潮| 久久99精品一区二区三区三区| 欧美肥胖老妇做爰| 亚洲电影中文字幕在线观看| 日本道免费精品一区二区三区| 亚洲视频1区2区| 色综合天天性综合| **性色生活片久久毛片| 99国产麻豆精品| 亚洲女同ⅹxx女同tv| 色婷婷国产精品综合在线观看| 亚洲欧洲日韩av| 99久久婷婷国产综合精品电影| 国产精品素人视频| 成人av网站免费观看| 国产精品热久久久久夜色精品三区| 国产精品1区2区| 亚洲国产成人私人影院tom| 成人高清免费在线播放| 自拍偷自拍亚洲精品播放| 一本色道a无线码一区v| 一区二区三区日韩| 欧美日韩在线精品一区二区三区激情| 亚洲高清一区二区三区| 欧美另类videos死尸| 青青草伊人久久| 久久综合九色综合欧美就去吻 | 91色视频在线| 亚洲一区在线播放| 欧美丰满少妇xxxxx高潮对白| 秋霞成人午夜伦在线观看| 337p日本欧洲亚洲大胆色噜噜| 国产美女主播视频一区| 国产精品麻豆网站| 91福利视频久久久久| 爽好多水快深点欧美视频| 精品国产91亚洲一区二区三区婷婷| 国产精品888| 亚洲女同ⅹxx女同tv| 91精品在线麻豆| 国产经典欧美精品| 一区二区三区**美女毛片| 欧美一区二区三区视频免费 | 高清不卡在线观看| 亚洲色图欧美在线| 51精品久久久久久久蜜臀| 精品系列免费在线观看| 亚洲欧洲成人精品av97| 欧美日韩精品欧美日韩精品| 捆绑变态av一区二区三区| 日本一区二区三区国色天香| 日本福利一区二区| 久久精品国产精品亚洲红杏| 国产精品三级视频| 欧美久久一二三四区| 国产成人亚洲精品狼色在线| 一区二区三区在线高清| 精品国产1区二区| 91在线观看成人| 裸体歌舞表演一区二区| 中文字幕在线不卡视频| 日韩视频免费观看高清完整版| 成人av在线影院| 日日嗨av一区二区三区四区| 国产欧美日韩综合精品一区二区| 色婷婷亚洲精品| 国产精品1区二区.| 午夜精品久久久| 国产精品久久毛片av大全日韩| 欧美精品v国产精品v日韩精品| 成人免费毛片a| 日本午夜精品视频在线观看 | 久久99精品国产.久久久久| 亚洲精品中文在线影院| 久久精品人人做人人爽人人| 6080国产精品一区二区| 96av麻豆蜜桃一区二区| 国产精品原创巨作av| 视频一区欧美精品| 亚洲欧美日韩一区| 久久久久国产精品麻豆| 91精品国产综合久久久蜜臀粉嫩 | 国产亚洲欧美色| 欧美电影一区二区| 日本韩国一区二区| 国产91色综合久久免费分享| 蜜臀av性久久久久蜜臀av麻豆| 亚洲一区中文日韩| 亚洲欧洲另类国产综合| 久久久久久久久久久久久女国产乱 | 爽好久久久欧美精品| 亚洲日本va午夜在线影院| 国产亚洲va综合人人澡精品 | 日韩成人精品视频| 一区二区三区免费网站| 中文字幕亚洲区| 国产欧美日韩另类一区| xnxx国产精品| 日韩一区二区免费电影| 欧美剧情电影在线观看完整版免费励志电影| 91麻豆免费观看| 99r国产精品| 99久免费精品视频在线观看| 成人爽a毛片一区二区免费|