91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 6KB
    文件類型: .cpp
    金幣: 1
    下載: 0 次
    發布日期: 2021-06-04
  • 語言: C/C++
  • 標簽: C語言??

資源簡介

用C語言編寫的最壞適應算法,大家快下載吧。

資源截圖

代碼片段和文件信息

#include?
?#include
#define?Free?0?//空閑狀態??
#define?Busy?1?//已用狀態
#define?OK?1????//完成?
?#define?ERROR?0?//出錯
#define?MAX_length?640?//最大內存空間為KB
typedef?int?Status;
typedef?struct?freearea//定義一個空閑區說明表結構
{???int?ID;???//分區號
???????long?size;???//分區大小
???????long?address;?//分區地址
???????int?state;???//狀態
}ElemType;
//----------??線性表的雙向鏈表存儲結構?------------
typedef?struct?DuLNode?//double?linked?list
{???ElemType?data;
???????struct?DuLNode?*prior;?//前趨指針
???????struct?DuLNode?*next;??//后繼指針
}DuLNode*DulinkList;
DulinkList?block_first;?//頭結點
DulinkList?block_last;??//尾結點
Status?alloc(int);//內存分配
Status?free(int);?//內存回收
Status?Worst_fit(intint);?//最壞適應算法
void?show();//查看分配
Status?Initblock();//開創空間表
?Status?Initblock()//開創帶頭結點的內存空間鏈表
{
???????block_first=(DulinkList)malloc(sizeof(DuLNode));
???????block_last=(DulinkList)malloc(sizeof(DuLNode));
???????block_first->prior=NULL;
???????block_first->next=block_last;
???????block_last->prior=block_first;
???????block_last->next=NULL;
???????block_last->data.address=0;
???????block_last->data.size=MAX_length;
???????block_last->data.ID=0;
???????block_last->data.state=Free;
???????return?OK;
}
//-----------------------?分配主存-------------------------
Status?alloc()
{
???????int?IDrequest;
???????cout<<“請輸入作業(分區號):“;
???????cin>>ID;
???????cout<<“請輸入需要分配的主存大小(單位:KB):“;
???????cin>>request;
???????if(request<0?||request==0)
???????{
??????????????cout<<“分配大小不合適,請重試!“<??????????????return?ERROR;
???????}
??????????if(Worst_fit(IDrequest)==OK)?cout<<“分配成功!“<??????????????else?cout<<“內存不足,分配失敗!“<?????????????
???????
???
}

//--------------------??最壞適應算法?------------------------
Status?Worst_fit(int?IDint?request)
{
???????int?ch;?//記錄最大剩余空間
???????DulinkList?temp=(DulinkList)malloc(sizeof(DuLNode));
???????temp->data.ID=ID;
???????temp->data.size=request;
???????temp->data.state=Busy;
???????DuLNode?*p=block_first->next;
???????DuLNode?*q=NULL;?//記錄最佳插入位置
???????while(p)?//初始化最大空間和最佳位置
???????{
??????????????if(p->data.state==Free?&&
?????????????????????(p->data.size>request?||?p->data.size==request)?)
??????????????{???q=p;
?????????????????????ch=p->data.size-request;
?????????????????????break;
??????????????}
??????????????p=p->next;
???????}
???????while(p)
???????{
??????????????
??????????????if(p->data.state==Free?&&?p->data.size>request)
??????????????{//空閑塊大于分配需求
?????????????????????if(p->data.size-request>ch)//剩余空間比初值還大
?????????????????????{
????????????????????????????ch=p->data.size-request;//更新剩余最小值
????????????????????????????q=p;//更新最佳位置指向
?????????????????????}
??????????????}
??if(p->data.state==Free?&&?p->data.size==request)
??????????????{//空閑塊大小恰好合適
?????????????????????p->data.ID=ID;
?????????????????????p->data.state=Busy;
?????????????????????return?OK;
?????????????????????break;
??????????????}
??????????????p=p->next;
???????}
???????i

評論

共有 條評論