我已经使用链表在 C 中实现了 First Fit 和 Worst Fit 算法,但是当谈到 Best Fit 时,我不知道如何实现它。大小对比怎么做?您是否有一系列可接受的尺寸可供检查?
我发现了一个非常有用的代码。让我知道是否有比这更好的实现:
Node *getBestFit(int size) {
Node *best = NULL;
Node *node = root;
while(node!=NULL) {
if (!node->used && (node->size >= size) && (best==NULL || node->size < best->size)) {
best = node;
if (best->size==size) { break; }
}
node = node->next;
}
return best;
}