я столкнулся с несколькими проблемами при работе tacop 2.2.2 последовательного распределения, переупаковка раздел памяти на странице 247.TAOCP, последовательные вопросы распределения
субъект есть п стеков, имеющих общую площадь расположения L0 < L < LX, изначально мы базовый комплект [J] = TOP [J] = L0 для 1 < = J < = п
цель состоит в том, когда происходит переполнение при вставке или удалении элементов относительно в стек I, как переупаковка память. (помещение для стека i, взяв некоторые из столов, которые еще не заполнены).
a). найти наименьший k, для которого i < k < n и TOP [k] < BASE [k + 1], если таковые k существует. (L), для TOP [k]> = L> BASE [i + 1] наконец, Установите BASE [j] -> BASE [j ] + 1, TOP [J] -> TOP [J] + 1, для г < J < к
вот мои вопросы:
как они находят стек, которые не должны быть заполнены? стек k? и почему выбрал самый маленький k?
umm ... почему не BASE [k + 1] - TOP [k]> 1, так как оба BASE [k + 1] и TOP [k] имеют местоположение, а если BASE [k + 1] - TOP [k] = 1, не означает, что BASE [k + 1] сразу после TOP [k]? – 2009-07-21 12:15:59
Если я правильно понял вас, _no_: 'BASE [k + 1]' не используется в '' стеке '(k + 1)' и доступен для использования в стеке 'k'th (последний элемент' k'th стек может храниться в местоположении 'BASE [k + 1]'). Итак, нам нужно проверить 'BASE [k + 1] - TOP [k]> 0' и _not_' BASE [k + 1] - TOP [k]> 1'. –