本文主要是介绍头歌动态分区算法第2关:最佳适应算法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
编程要求
空闲分区采用带头结点的双向链表来管理,主函数、链表初始化函数和打印函数已实现,只需要补充最佳适应算法分配内存的函数 best_fit以及内存回收的函数recycle()即可。
bool best_fit(int id,int m_size)//使用最佳适应算法给作业分配内存,id为作业号,m_size为作业大小 void recycle(int id)//回收内存,id为释放内存的作业号
#include <stdio.h>
#include <stdlib.h>const int Max_length=55;//最大内存struct areaNode//管理分区的结构体
{ int ID;//分区号 int size;//分区大小 int address;//分区地址 int flag;//使用状态,0为未占用,1为已占用
};typedef struct DuNode//双向链表结点
{ struct areaNode data;//数据域 struct DuNode *prior;//指针域 struct DuNode *next;
}*DuLinkList;
DuLinkList m_head = new DuNode, m_last = new DuNode;//双向链表首尾指针void init()//分区链表初始化
{ m_head->prior = NULL; m_head->next = m_last; m_last->prior = m_head; m_last->next = NULL; m_head->data.size = 0; m_last->data.address = 0; m_last->data.size
这篇关于头歌动态分区算法第2关:最佳适应算法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!