1. 背景说明
2. 示例代码
buddySystem.h
// 伙伴系统实现头文件
#ifndef BUDDY_SYSTEM_H
#define BUDDY_SYSTEM_H
#include "errorRecord.h"
#define POWER_TIME 10 // 可利用空间总容量的 2 的幂次,子表的个数为 POWER_TIME + 1
#define MAX_USED_BLOCK_NUM 100 // 占用块个数的最大值
typedef struct Word {
struct Word *lLink; // 指向前驱结点
Boolean tag; // 块标志,TRUE: 空闲,FALSE: 占用
int blockSize; // 块大小,值为 2 的 blockSize 幂次
struct Word *rLink; // 头部域,指向后继结点
} Word, Head, *Space; // Word: 内