我在工作 tacop 2.2.2 顺序分配时遇到了一些问题,在第 247 页重新打包内存部分。
主题是有 n 个堆栈共享一个公共区域位置 L0 < L < LX,最初我们设置 BASE[j] = TOP[j] = L0 为 1 <= j <= n
目标是在插入或删除关于堆栈 i 的元素时发生溢出时,如何重新打包内存。(通过从尚未填满的桌子上拿走一些来为堆栈 i 腾出空间)。
一个)。如果存在任何这样的 k,则找到 i < k < n 且 TOP[k] < BASE[k+1] 的最小 k。将事情提升一个档次,设置 CONTENTS(L+1) -> CONTENTS(L),对于 TOP[k] >= L > BASE[i+1] 最后,设置 BASE[j] -> BASE[j] + 1 , TOP[j] -> TOP[j] + 1, 对于 i < j < k
这是我的问题:
他们如何找到尚未填充的堆栈?堆栈 k? 为什么选择最小的k?