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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? algo8-2.cpp

?? 數(shù)據(jù)結(jié)構(gòu)(嚴(yán)慰民)配套純C代碼 對(duì)學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)有很大的幫助
?? CPP
字號(hào):
 // algo8-2.cpp 伙伴系統(tǒng)。實(shí)現(xiàn)算法8.2的程序
 #include"c1.h"
 #include"c8-2.h"
 #define N 100 // 占用塊個(gè)數(shù)的最大值
 Space r; // r為生成空間的首地址,全局量

 Space AllocBuddy(FreeList &avail,int n)
 { // avail[0..m]為可利用空間表,n為申請(qǐng)分配量,若有不小于n的空閑塊,
   // 則分配相應(yīng)的存儲(chǔ)塊,并返回其首地址;否則返回NULL。算法8.2
   int i,k;
   Space pa,pi,pre,suc;
   for(k=0;k<=m&&(avail[k].nodesize<n+1||!avail[k].first);++k); // 查找滿足分配要求的子表
   if(k>m) // 分配失敗,返回NULL
     return NULL;
   else // 進(jìn)行分配
   {
     pa=avail[k].first; // 指向可分配子表的第一個(gè)結(jié)點(diǎn)
     pre=pa->llink; // 分別指向前驅(qū)和后繼
     suc=pa->rlink;
     if(pa==suc)
       avail[k].first=NULL; // 分配后該子表變成空表
     else // 從子表刪去*pa結(jié)點(diǎn)
     {
       pre->rlink=suc;
       suc->llink=pre;
       avail[k].first=suc;
     }
     for(i=1;avail[k-i].nodesize>=n+1;++i)
     {
       pi=pa+int(pow(2,k-i));
       pi->rlink=pi;
       pi->llink=pi;
       pi->tag=0;
       pi->kval=k-i;
       avail[k-i].first=pi;
     } // 將剩余塊插入相應(yīng)子表
     pa->tag=1;
     pa->kval=k-(--i);
   }
   return pa;
 }

 Space buddy(Space p)
 { // 返回相對(duì)起始地址為p,塊大小為pow(2,k)的塊的伙伴地址
   if((p-r)%int(pow(2,p->kval+1))==0) // p為前塊
     return p+int(pow(2,p->kval));
   else // p為后塊
     return p-int(pow(2,p->kval));
 }

 void Reclaim(FreeList &pav,Space &p)
 { // 伙伴系統(tǒng)的回收算法 將p所指的釋放塊回收到可利用空間表pav中
   Space s;
   s=buddy(p); // 伙伴塊的起始地址
   while(s>=r&&s<r+pav[m].nodesize&&s->tag==0) // 歸并伙伴塊,伙伴塊起始地址在有效范圍內(nèi)且伙伴塊空閑
   { // 從鏈表上刪除該結(jié)點(diǎn)
     if(s->llink==s&&s->rlink==s) // 鏈表上僅此一個(gè)結(jié)點(diǎn)
       pav[s->kval].first=NULL; // 置此鏈表為空
     else // 鏈表上不止一個(gè)結(jié)點(diǎn)
     {
       s->llink->rlink=s->rlink; // 前驅(qū)的后繼為該結(jié)點(diǎn)的后繼
       s->rlink->llink=s->llink; // 后繼的前驅(qū)為該結(jié)點(diǎn)的前驅(qū)
       if(pav[s->kval].first==s) // s是鏈表的第一個(gè)結(jié)點(diǎn)
         pav[s->kval].first=s->rlink; // 表頭指向下一個(gè)結(jié)點(diǎn)
     } // 以下修改結(jié)點(diǎn)頭部
     if((p-r)%int(pow(2,p->kval+1))==0) // p為前塊
       p->kval++;
     else // p為后塊
     {
       s->kval=p->kval+1;
       p=s; // p指向新塊首地址
     }
     s=buddy(p); // 下一個(gè)伙伴塊的起始地址
   }
   // 以下將p插到可利用空間表中
   p->tag=0;
   if(pav[p->kval].first==NULL) // 該鏈表空
     pav[p->kval].first=p->llink=p->rlink=p;
   else // 插在表頭
   {
     p->rlink=pav[p->kval].first;
     p->llink=p->rlink->llink;
     p->rlink->llink=p;
     p->llink->rlink=p;
     pav[p->kval].first=p;
   }
   p=NULL;
 }

 void Print(FreeList p)
 { // 輸出p中所有可利用空間表
   int i;
   Space h;
   for(i=0;i<=m;i++)
   {
     if(p[i].first) // 第i個(gè)可利用空間表不空
     {
       h=p[i].first; // h指向鏈表的第一個(gè)結(jié)點(diǎn)的頭部域(首地址)
       do
       {
         printf("塊的大小=%d 塊的首地址=%u ",int(pow(2,h->kval)),h); // 輸出結(jié)點(diǎn)信息
         printf("塊標(biāo)志=%d(0:空閑 1:占用)\n",h->tag);
         h=h->rlink; // 指向下一個(gè)結(jié)點(diǎn)的頭部域(首地址)
       }while(h!=p[i].first); // 沒到循環(huán)鏈表的表尾
     }
   }
 }

 void PrintUser(Space p[])
 { // 輸出p數(shù)組所指的已分配空間
   for(int i=0;i<N;i++)
     if(p[i]) // 指針不為0(指向一個(gè)占用塊)
     {
       printf("占用塊%d的首地址=%u ",i,p[i]); // 輸出結(jié)點(diǎn)信息
       printf("塊的大小=%d",int(pow(2,p[i]->kval)));
       printf(" 塊標(biāo)志=%d(0:空閑 1:占用)\n",p[i]->tag);
     }
 }

 void main()
 {
   int i,n;
   FreeList a;
   Space q[N]={NULL}; // q數(shù)組為占用塊的首地址
   printf("sizeof(WORD)=%u m=%u int(pow(2,m))=%u\n",sizeof(WORD),m,int(pow(2,m)));
   for(i=0;i<=m;i++) // 初始化a
   {
     a[i].nodesize=int(pow(2,i));
     a[i].first=NULL;
   }
   r=a[m].first=new WORD[a[m].nodesize]; // 在最大鏈表中生成一個(gè)結(jié)點(diǎn)
   if(r) // 生成結(jié)點(diǎn)成功
   {
     r->llink=r->rlink=r; // 初始化該結(jié)點(diǎn)
     r->tag=0;
     r->kval=m;
     Print(a);
     PrintUser(q);
     n=100;
     q[0]=AllocBuddy(a,n); // 向a申請(qǐng)100個(gè)WORD的內(nèi)存(實(shí)際獲得128個(gè)WORD)
     printf("申請(qǐng)%d個(gè)字后,可利用空間為:\n",n);
     Print(a);
     PrintUser(q);
     n=200;
     q[1]=AllocBuddy(a,n); // 向a申請(qǐng)200個(gè)WORD的內(nèi)存(實(shí)際獲得256個(gè)WORD)
     printf("申請(qǐng)%d個(gè)字又",n);
     n=220;
     q[2]=AllocBuddy(a,n); // 向a申請(qǐng)220個(gè)WORD的內(nèi)存(實(shí)際獲得256個(gè)WORD)
     printf("申請(qǐng)%d個(gè)字后,可利用空間為:\n",n);
     Print(a);
     PrintUser(q);
     Reclaim(a,q[1]); // 回收q[1],伙伴不空閑
     printf("回收q[1]后,可利用空間為:\n");
     Print(a);
     PrintUser(q);
     Reclaim(a,q[0]); // 回收q[0],伙伴空閑
     printf("回收q[0]后,可利用空間為:\n");
     Print(a);
     PrintUser(q);
     Reclaim(a,q[2]); // 回收q[2],伙伴空閑,生成一個(gè)大結(jié)點(diǎn)
     printf("回收q[2]后,可利用空間為:\n");
     Print(a);
     PrintUser(q);
   }
   else
     printf("ERROR\n");
 }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产夫妻精品视频| 亚洲免费观看视频| 国产一区二区导航在线播放| 日韩欧美三级在线| 韩国视频一区二区| 久久精品综合网| 丰满放荡岳乱妇91ww| 中文字幕视频一区| 91福利资源站| 蜜桃av噜噜一区二区三区小说| 日韩手机在线导航| 国产伦理精品不卡| 国产精品国产三级国产普通话99 | 国内外成人在线| 2017欧美狠狠色| 丁香桃色午夜亚洲一区二区三区| 18欧美乱大交hd1984| 在线欧美日韩国产| 日韩国产精品久久| 久久久影视传媒| 色菇凉天天综合网| 日本亚洲电影天堂| 久久免费视频色| 91久久精品午夜一区二区| 首页欧美精品中文字幕| 2021中文字幕一区亚洲| av在线这里只有精品| 亚洲成av人片在线观看| 欧美精品一区二区三区很污很色的 | 国产精品77777竹菊影视小说| 国产精品成人免费| 777xxx欧美| 成av人片一区二区| 日本亚洲最大的色成网站www| 国产精品丝袜一区| 欧美日韩免费一区二区三区视频| 国产老妇另类xxxxx| 亚洲激情网站免费观看| 久久亚洲春色中文字幕久久久| 色综合久久88色综合天天6| 美腿丝袜亚洲色图| 亚洲精品一二三四区| 精品福利在线导航| 欧美曰成人黄网| 国产盗摄一区二区| 天堂影院一区二区| 亚洲视频一区二区在线观看| 久久综合久色欧美综合狠狠| 欧美日韩激情一区二区三区| 波多野结衣在线一区| 久久精品99国产精品日本| 亚洲美女少妇撒尿| 中文一区在线播放| 日韩欧美国产系列| 欧美性色黄大片| 高清视频一区二区| 精品综合久久久久久8888| 亚洲高清久久久| 综合久久久久久久| 久久久久国产精品麻豆ai换脸 | 在线观看91视频| www.日韩大片| 国产传媒欧美日韩成人| 全国精品久久少妇| 亚洲国产成人va在线观看天堂| 国产精品国产三级国产普通话三级 | 99re免费视频精品全部| 国产永久精品大片wwwapp| 免费欧美在线视频| 婷婷综合五月天| 亚洲超丰满肉感bbw| 亚洲激情欧美激情| 亚洲精品综合在线| 亚洲男女一区二区三区| 欧美极品少妇xxxxⅹ高跟鞋| 国产日韩综合av| 国产丝袜欧美中文另类| 久久久精品黄色| 欧美国产亚洲另类动漫| 国产日韩精品一区| 欧美激情资源网| 国产精品蜜臀在线观看| 国产精品女人毛片| 国产精品妹子av| 最好看的中文字幕久久| 最新高清无码专区| 亚洲精品乱码久久久久久| 一区二区国产视频| 亚洲国产精品久久久久婷婷884 | 国产aⅴ综合色| 成人在线视频首页| 成人99免费视频| 99re成人在线| 欧美日韩国产三级| 3d动漫精品啪啪| 2023国产精品| 最新中文字幕一区二区三区| 一区二区三区四区激情| 午夜久久福利影院| 久久精品国产精品青草| 国产成人在线免费| 99久久伊人久久99| 欧美影片第一页| 日韩精品专区在线影院观看| 国产日韩在线不卡| 综合婷婷亚洲小说| 五月婷婷欧美视频| 狠狠色狠狠色综合日日91app| 懂色av一区二区三区蜜臀| 色婷婷av一区二区三区大白胸| 欧美精品久久久久久久多人混战 | 91久久精品一区二区三区| 欧美日韩成人综合天天影院 | 亚洲伊人伊色伊影伊综合网| 免费在线观看视频一区| 国产精品一区二区久久不卡| jvid福利写真一区二区三区| 色视频成人在线观看免| 欧美日韩高清不卡| 国产婷婷色一区二区三区在线| 一区二区三区免费在线观看| 久久99国产精品成人| 99re成人精品视频| 日韩免费视频线观看| 国产精品久久久一本精品| 五月天亚洲婷婷| 不卡一区二区在线| 欧美精品乱码久久久久久| 国产欧美日韩中文久久| 偷拍与自拍一区| 99久久精品国产毛片| 日韩免费视频一区二区| 亚洲激情综合网| 国产91精品欧美| 日韩视频免费观看高清完整版在线观看 | 一区二区三区日韩欧美| 国产美女久久久久| 欧美日韩国产经典色站一区二区三区| 久久噜噜亚洲综合| 日韩激情视频在线观看| 色婷婷综合中文久久一本| 久久精品一区四区| 日韩电影在线免费看| 91啪亚洲精品| 国产精品午夜春色av| 老司机免费视频一区二区| 欧美亚洲国产一卡| 中文字幕日韩av资源站| 国产麻豆视频精品| 91精品在线免费| 亚洲一区二区精品视频| 99久久国产免费看| 欧美国产欧美综合| 国产一二三精品| 欧美精品一区二区三区视频| 美女精品自拍一二三四| 欧美日韩国产不卡| 亚洲午夜电影网| 在线观看91视频| 亚洲一区二区在线免费观看视频| 99精品桃花视频在线观看| 国产日韩欧美在线一区| 国产精品一二三区| 欧美精品一区二区三区一线天视频 | 国产成人8x视频一区二区| 欧美成人一区二区三区片免费 | 久久精品国产澳门| 欧美精品日韩精品| 亚洲一区二区av在线| 91久久奴性调教| 亚洲免费观看高清完整版在线观看| 不卡av在线网| 中文字幕在线免费不卡| 95精品视频在线| 亚洲乱码中文字幕| 在线观看视频一区二区欧美日韩| 亚洲美女视频在线观看| 色婷婷精品大在线视频| 亚洲综合视频网| 欧美日本高清视频在线观看| 免费成人美女在线观看| 日韩三级视频在线看| 国模少妇一区二区三区| 日本一区二区三区视频视频| 国产成人av电影| 国产精品久久久久久久久图文区 | 亚洲激情成人在线| 欧洲av在线精品| 日韩电影一二三区| 精品国产一区久久| 国产成人三级在线观看| 综合激情成人伊人| 欧美性猛交xxxx黑人交| 日韩电影在线免费观看| 26uuu欧美| 94色蜜桃网一区二区三区| 亚洲一区在线看| 日韩免费一区二区三区在线播放| 福利一区二区在线| 亚洲免费观看高清完整版在线|