순차적으로 할당 질문 페이지의 주제는 247taocp, 2.2.2 연속 할당을 tacop 작업하는 동안 나는 몇 가지 문제로 실행했습니다
에서 재 포장 메모리 부분은 n은 공통 영역을 공유 스택이 위치 L0 < L이 있습니다 < LX는 처음 우리 BASE를 [J] = TOP [J] = L0 1 < = J < = N
위한 삽입 방법이나, 난 스택에 대하여 으로 요소 삭제하는 동안 오버 플로우가 발생할 때, 목표는 메모리를 재 포장하십시오. (아직 채워지지 않은 테이블 인 에서 일부를 취하여 스택 i의 공간을 확보).
a). i가 < k < n이고 TOP [k] < BASE [k + 1]가있는 경우 가장 작은 k를 찾습니다 (k 이있는 경우). TOP [k]> = L> BASE [i + 1] 마지막으로 에 대한 CONTENTS (L + 1) -> CONTENTS (L) 설정 BASE [j] -> BASE [j ] + 1, TOP [J] -> TOP [J] + 1, 난 < J 여기 < K
내 질문 있어요 :
는 어떻게 아직 작성 될 수 없습니다 스택을 찾을 수 있습니까? 스택 k? 왜 가장 작은 k를 선택 했습니까?
가 스택
k
처음에 < ==>TOP[k] < BASE[k+1]
루프 전체되지 않습니다 :
음 ... BASE [k + 1]과 TOP [k]가 모두 위치하므로 BASE [k + 1] - TOP [k]> 1이 아니며, BASE [k + 1] - TOP [k] = 1, BASE [k + 1]이 TOP [k] 바로 다음에 있음을 의미하지 않습니까? –
내가 맞으면, _no_ :'BASE [k + 1]'은'(k + 1)'st 스택에서 사용되지 않고'k' 스택에 의해 사용 가능하다. (' k 스택은'BASE [k + 1]'위치에 저장 될 수있다. 그래서 우리는'BASE [k + 1] - TOP [k]> 0'과 _not_'BASE [k + 1] - TOP [k]> 1'을 체크 할 필요가 있습니다. –