U E D R , A S I H C RSS

TAOCP/Information Structures

2.2. Linear Lists

2.2.2. Sequential Allocation

ํ•œ ๋…ธ๋“œ์— ๋“ค์–ด์žˆ๋Š” WORD์˜ ์ˆ˜๊ฐ€ c๊ฐœ๋ผ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์“ธ ์ˆ˜ ์žˆ๋‹ค.
LOC(Xj + 1) = LOC(Xj) + c

์ƒ์ˆ˜ L0๋ฅผ base address๋ผ๊ณ  ํ•œ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด๋„ ์“ธ ์ˆ˜ ์žˆ๋‹ค.
LOC(Xj) = L0 + cj

Sequential Allocation์€ stack์„ ๋‹ค๋ฃจ๋Š”๋ฐ ํŽธ๋ฆฌํ•˜๋‹ค.
''์ƒˆ ์›์†Œ ๋„ฃ๊ธฐ(To place a new element Y on top)
T โ† T + 1; XT โ† Y;
๋งˆ์ง€๋ง‰ ์›์†Œ ๋นผ๊ธฐ(setting Y equal to the top node and delete)
Y โ† XT; T โ† T - 1;''

queue๋‚˜ deque๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์€ ์ข€๋” ๋ณต์žกํ•˜๋‹ค.
''์ƒˆ ์›์†Œ ๋„ฃ๊ธฐ(inserting an element at the rear of the queue)
R โ† R + 1; XR โ† Y;
๋งจ ์•ž ์›์†Œ ๋นผ๊ธฐ(removing the front node)
F โ† F + 1; Y โ† XF; if F = R, then set F โ† R โ† 0''

ํ•˜์ง€๋งŒ ๊ณต๊ฐ„๋‚ญ๋น„๊ฐ€ ๋ฌดํ•œํ•  ์ˆ˜ ์žˆ๋‹ค.( F, R์ด ๊ณ„์†์ฆ๊ฐ€ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.) ๋”ฐ๋ผ์„œ ์ด๋Ÿฐ ๋ฌธ์ œ(the problem of the queue overrunning memory)๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด, M๊ฐœ์˜ ๋…ธ๋“œ(X1...XM)๊ฐ€ ์ˆœํ™˜ํ•˜๋„๋ก ํ•œ๋‹ค.
''if R = M then R โ† 1, otherwise R โ† R + 1; XR โ† Y.
if F = M then F โ† 1, otherwise F โ† F + 1; Y โ† XF.''

์—ฌํƒœ๊นŒ์ง€๋Š” ๋ฌธ์ œ(๋” ๋„ฃ์„ ๊ณต๊ฐ„์ด ์—†๊ฑฐ๋‚˜, ๋” ์ง€์šธ ๊ฒƒ์ด ์—†๋Š” ๊ฒฝ์šฐ)๊ฐ€ ์—†๋‹ค๊ณ  ๊ฐ€์ •ํ–ˆ๋‹ค. ์ด ๋ฌธ์ œ๊นŒ์ง€ ๊ณ ๋ คํ•œ ๊ณผ์ •์ด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
p.245 (2a),(3a),(6a),(7a)

(6a),(7a)์—์„œ๋Š” ์ดˆ๊ธฐ ์กฐ๊ฑด์ด F = R = 1์ด๋‹ค. ๋งŒ์•ฝ F = 0์ด๋ผ๋ฉด ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๊ฐ€ ์ƒ๊ธฐ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
AnswerMe ๊ทธ๋ ‡๋‹ค๋ฉด ์ƒˆ ์›์†Œ๋ฅผ ๋„ฃ์œผ๋ฉด X2๋ถ€ํ„ฐ ๋“ค์–ด๊ฐ„๋‹ค๋Š” ๊ฑด๊ฐ€? --Leonardong

์˜ค๋ฒ„ํ”Œ๋กœ์šฐ์™€ ์–ธ๋”ํ”Œ๋กœ์šฐ๊ฐ€ ์ผ์–ด๋‚ฌ์„ ๋•Œ ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ? ์–ธ๋”ํ”Œ๋กœ์šฐ๋Š” ํ•˜๋‚˜์˜ ์˜๋ฏธ์žˆ๋Š” ์กฐ๊ฑด - ์—๋Ÿฌ ์ƒํ™ฉ์ด ์•„๋‹ˆ๋ผ - ์ด๋‹ค. ํ•˜์ง€๋งŒ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๋Š” ๋” ๋“ค์–ด๊ฐˆ ๊ณต๊ฐ„์ด ์—†๋Š”๋ฐ ๋“ค์–ด๊ฐˆ ์ •๋ณด๊ฐ€ ๋‚จ์•„์žˆ์–ด์„œ ์—๋Ÿฌ์ด๋‹ค. ๋”ฐ๋ผ์„œ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๊ฐ€ ์ƒ๊ธฐ๋ฉด ์šฉ๋Ÿ‰ํ•œ๊ณ„๋ฅผ ๋„˜์–ด์„œ์„œ ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒํ•œ๋‹ค.

๊ฐ€๋Šฅํ•œ ๊ณต๊ฐ„์— ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋‘ ๊ฐœ ์žˆ๋‹ค๋ฉด (๊ณ ์ •๋œ)bottom์„ ๊ฐ™์ด ์“ธ ์ˆ˜ ์žˆ๋‹ค. (p.246 ๊ทธ๋ฆผ ์ฐธ๊ณ ) ์ด๋Ÿฐ ๊ฒฝ์šฐ ๋‘ ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋ชจ๋‘ ์จ๋ฒ„๋ฆด ๋•Œ๊นŒ์ง€ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๋Š” ์ƒ๊ธฐ์ง€ ์•Š๋Š”๋‹ค. ์ด๋Ÿฐ ํ˜•ํƒœ๋Š” ๋งค์šฐ ์ž์ฃผ ์“ฐ์ธ๋‹ค.

ํ•˜์ง€๋งŒ ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋” ๋งŽ์œผ๋ฉด bottom์ด ์›€์ง์ผ ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.(we must allow the "bottom" elements of the lists to change therir positions.) MIX์—์„œ I๋ฒˆ์งธ ํ•œ WORD๋ฅผ rA์— ๊ฐ€์ ธ์˜ค๋Š” ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
''LD1 I ;I๋ฅผ rI2์— ๋„ฃ๋Š”๋‹ค.
LDA BASE(0:2) ;BASE์— ์ €์žฅ๋œ L0์ฃผ์†Œ๋ฅผ rA์— ๋„ฃ๋Š”๋‹ค.
STA *+1(0:2) ;๊ทธ ์ฃผ์†Œ๋ฅผ ๋‹ค์Œ ๋ฉ”๋ชจ๋ฆฌ(LDA *,1์ด ์žˆ๋Š”)์— ๋„ฃ๋Š”๋‹ค.
LDA *,1 ;์—ฌ๊ธฐ์— I๋ฅผ ๋”ํ•œ ์ฃผ์†Œ๋กœ ๊ฐ€์„œ ๊ทธ ๊ฐ’์„ rA์— ๋„ฃ๋Š”๋‹ค.''

n๊ฐœ์˜ ์Šคํƒ์ด ์žˆ๋Š” ๊ฒฝ์šฐ i๋ฒˆ์งธ(1โ‰คiโ‰คn) ์Šคํƒ์— ์›์†Œ๋ฅผ ๋„ฃ๊ณ  ๋นผ๋Š” ๊ณผ์ •์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ ์„ ์ˆ˜ ์žˆ๋‹ค.
p.247 (9) (10) ์ฐธ๊ณ 

์—ฌ๊ธฐ์„œ i๋ฒˆ์งธ ์Šคํƒ์—์„œ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๊ฐ€ ์ƒ๊ธฐ๋ฉด ๋ฉ”๋ชจ๋ฆฌ ์žฌ๋ฐฐ์น˜(repack memory)๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ช‡๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ๋Š”๋ฐ ์ง€๊ธˆ๋ถ€ํ„ฐ ์ž์„ธํžˆ ์•Œ์•„๋ณด์ž.
''์ดˆ๊ธฐ ์กฐ๊ฑด : p.247 (11) ์ฐธ๊ณ 
i๋ฒˆ์งธ ์Šคํƒ์—์„œ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๊ฐ€ ์ƒ๊ฒผ์„ ๋•Œ''
a) ์œ„๋กœ ํ•œ์นธ์”ฉ ๋ฐ€๊ธฐ(moving things up)'''
i๏ผœkโ‰คn์ธ k ๊ฐ€์šด๋ฐ TOPk < BASEk+1์ธ ๊ฐ€์žฅ ์ž‘์€ k๋ฅผ ์ฐพ๋Š”๋‹ค. ์ฐพ์œผ๋ฉด TOPk โ‰ฅ L๏ผžBASEi+1์ธ L์— ๋Œ€ํ•ด์„œ ๋‹ค์Œ์„ ํ•œ๋‹ค.
CONTENTS(L+1) โ† CONTENTS(L) (L์€ ํฐ ๊ฒƒ๋ถ€ํ„ฐ ๋ฏผ๋‹ค. ํ•ด๋‹น์‚ฌํ•ญ ์—†์œผ๋ฉด ์•„๋ฌด๊ฒƒ๋„ ํ•˜์ง€ ์•Š๋Š”๋‹ค.)
๊ทธ๋ฆฌ๊ณ  ๋งˆ์ง€๋ง‰์œผ๋กœ i๋ณด๋‹ค ํฌ๊ณ  k๋ณด๋‹ค ํฌ์ง€ ์•Š์€ ๋ชจ๋“  BASE์™€ TOP์„ ํ•˜๋‚˜์”ฉ ์œ„๋กœ ๋ฏผ๋‹ค.

b) ์•„๋ž˜๋กœ ํ•œ์นธ์”ฉ ๋ฐ€๊ธฐ(moving things down)''' a)์— ํ•ด๋‹นํ•˜๋Š” k๊ฐ€ ์—†์„ ๊ฒฝ์šฐ
iโ‰คk๏ผœn์ธ k ๊ฐ€์šด๋ฐ TOPk < BASEk+1์ธ ๊ฐ€์žฅ ํฐ k๋ฅผ ์ฐพ๋Š”๋‹ค. ์ฐพ์œผ๋ฉด TOPi โ‰ฅ L๏ผžBASEk+1์ธ L์— ๋Œ€ํ•ด์„œ ๋‹ค์Œ์„ ํ•œ๋‹ค.
CONTENTS(L-1) โ† CONTENTS(L) (L์€ ์ž‘์€ ๊ฒƒ๋ถ€ํ„ฐ ๋ฏผ๋‹ค. ํ•ด๋‹น์‚ฌํ•ญ ์—†์œผ๋ฉด ์•„๋ฌด๊ฒƒ๋„ ํ•˜์ง€ ์•Š๋Š”๋‹ค.)
๊ทธ๋ฆฌ๊ณ  ๋งˆ์ง€๋ง‰์œผ๋กœ k๋ณด๋‹ค ํฌ๊ณ  i๋ณด๋‹ค ํฌ์ง€ ์•Š์€ ๋ชจ๋“  BASE์™€ TOP์„ ํ•˜๋‚˜์”ฉ ์•„๋ž˜๋กœ ๋ฏผ๋‹ค.
c) ์ง„์งœ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ
๊ณต๊ฐ„์„ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค. ํฌ๊ธฐํ•ด์•ผ ํ•œ๋‹ค.
''
(p.248์— (12)์™€ ๊ทธ๋ฆผ 4๋Š” ์˜ˆ์ œ์ด๋‹ค. ๊ทผ๋ฐ ์–ด๋ ต๋‹ค. 3๋ฒˆ์„ ํ•ด๋ณด์•˜์œผ๋‚˜ ์ œ๋Œ€๋กœ ๋‚˜์˜ค์งˆ ์•Š์•˜๋‹ค.)

์ดˆ๊ธฐ๊ฐ’์œผ๋กœ ํšจ์œจ์ ์ธ ์‹œ์ž‘ ์œ„์น˜๋ฅผ ์ฃผ๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. (p.248 (13), ํ‰๊ท ์ ์œผ๋กœ BASE๋ฅผ ๋ถ„ํฌ์‹œํ‚จ๋‹ค.)

ํ•œ ๋ฒˆ ๋ฉ”๋ชจ๋ฆฌ ์žฌ๋ฐฐ์น˜๋ฅผ ํ•  ๋•Œ๋งˆ๋‹ค ๊ณต๊ฐ„์„ ์ ๋‹นํžˆ ๋งˆ๋ จํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.( ๊ทธ๋Ÿฌ๋‚˜ ์ดํ•ดํ•˜์ง€ ๋ชปํ–ˆ๋‹ค.p.250์— ์ค‘๊ฐ„์— ๋ณด๋ฉด ์œ„ ์•Œ๊ณ ๋ฆฌ์ฆ˜(Algorithm G๋‚˜ R)๊ณผ ๋น„์Šทํ•œ ๋™์  ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ˆ˜ํ•™์  ๋ถ„์„์€ ๋งค์šฐ ์–ด๋ ต๋‹ค๊ณ  ๋‚˜์™€์žˆ๋‹ค. )

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:28:09
Processing time 0.0065 sec