有作序列:作A要求18K;作B要求25K,作C要求30K。要求使用最佳适应分区算法分配内存。
下面是一些步骤
(1) 建立相关的数据结构;
typedef struct unode
{
float address;
float length;
char job;
struct unode *next;
}user_List;//已分配块链表存储结构
typedef struct fnode
{
float address;
float length;
struct fnode *next;
} free_List;//空闲块链表存储结构
(2) 初始化空闲块链表、已分配块链表;
free_List * create_free(free_List * free_H)//初始化空闲块链表
user_List * create_user(user_List * user_H)//初始化已分配块链表
(3) 实现分配和回收函数。
Allocate(user_List *u_L,free_List *f_L,char job,float mem)//分配函数
Reclaim(char job,user_List *user_H,free_List *free_H)//回收函数
(4) 主函数调用