์ƒˆ์†Œ์‹

๐Ÿ’พ ์ž๋ฃŒ๊ตฌ์กฐ

์ž๋ฃŒ๊ตฌ์กฐ - ์ˆœ์ฐจ ์ž๋ฃŒ๊ตฌ์กฐ ( ์„ ํ˜• ๋ฆฌ์ŠคํŠธ ) & ์—ฐ๊ฒฐ ์ž๋ฃŒ๊ตฌ์กฐ

  • -

* ๋ฆฌ์ŠคํŠธ(List) ๋ž€ ?

์ž๋ฃŒ๋ฅผ ๋‚˜์—ดํ•œ ๋ชฉ๋ก์„ ๋งํ•œ๋‹ค. (์ผ๋ฐ˜์ ์œผ๋กœ ์•„๋ž˜์™€ ๊ฐ™์€ ํ‘œ์˜ ํ˜•ํƒœ)

์ด๋ฆ„ ์ฃผ์†Œ ์ถœ์„๋ฒˆํ˜ธ ์ด๋ฉ”์ผ
kim seoul 99 abc@naver.com
you tokyo 77 test@naver,com
lee busan 33 as@daum.net

 

*์„ ํ˜• ๋ฆฌ์ŠคํŠธ(Linear List)๋ž€ ?

์ด๋Ÿฌํ•œ ํ˜•ํƒœ์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ, ์ปดํ“จํ„ฐ์—์„œ๋Š” ์„ ํ˜• ๋ฆฌ์ŠคํŠธ(Linear List)๋กœ ํ‘œํ˜„ํ•œ๋‹ค. ์„ ํ˜• ๋ฆฌ์ŠคํŠธ์˜ ํ•ต์‹ฌ์€ ์„ ์ฒ˜๋Ÿผ ์—ฐ๊ฒฐ๋œ ๋ฆฌ์ŠคํŠธ์ด๊ธฐ ๋•Œ๋ฌธ์— "์ˆœ์„œ"๊ฐ€ ์ค‘์š”ํ•˜๋‹ค.

EX )  ์ค‘๊ตญ์ง‘ = (์งœ์žฅ๋ฉด ,ํƒ•์ˆ˜์œก , ๊ฟ”๋ฐ”๋กœ์šฐ ........ )

๋ฆฌ์ŠคํŠธ๊ฐ€ ๊ณต๋ฐฑ์ผ ๊ฒฝ์šฐ๋„ ํ—ˆ์šฉ๋œ๋‹ค. ๊ทธ๋•Œ๋Š” ๋นˆ ๊ด„ํ˜ธ์ธ () ๋กœ ํ‘œํ˜„ํ•˜๋ฉด ๋œ๋‹ค.

์ด๋Ÿฌํ•œ ์ž๋ฃŒํ˜•์ธ ๋ฆฌ์ŠคํŠธ๋Š” ์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•˜๋‹ค. ๋”ฐ๋ผ์„œ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋ ๋•Œ๋„ ๊ฐ™์€ ์ˆœ์„œ๋กœ ์ €์žฅ๋œ๋‹ค.
(๋ฌผ๋ฆฌ์  ์ˆœ์„œ = ๋…ผ๋ฆฌ์  ์ˆœ์„œ)

 

 

 

* ์„ ํ˜• ๋ฆฌ์ŠคํŠธ -  ์›์†Œ์˜ ์œ„์น˜

์›์†Œ์˜ ์œ„์น˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค.

์ €์žฅ์ด ์‹œ์ž‘๋œ ์œ„์น˜๋ฅผ a, ์›์†Œ์˜ ๊ธธ์ด๋ฅผ l ๋ผ๊ณ  ํ–ˆ์„๋•Œ,

i ๋ฒˆ์งธ ์›์†Œ์˜ ์œ„์น˜ = a + ( i - 1 ) * l , ์ฆ‰, ์ฒซ๋ฒˆ์งธ ์›์†Œ๋ถ€ํ„ฐ ๊ณ„์‚ฐํ•ด๋ณด๋ฉด a , a +l , a + 2l .......... a+(i-1)*l์ด ๋œ๋‹ค.

 

*์„ ํ˜• ๋ฆฌ์ŠคํŠธ - ์›์†Œ์˜ ์‚ฝ์ž… / ์‚ญ์ œ

์›์†Œ๋Š” ๋…ผ๋ฆฌ์  ์ˆœ์„œ๋Œ€๋กœ ์ €์žฅ๋˜์–ด์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ์›์†Œ๋“ค ์‚ฌ์ด์— ์ƒˆ๋กœ์šด ์›์†Œ๋ฅผ ์‚ฝ์ž…ํ•˜๋ ค๋ฉด ์›์†Œ๋ฅผ ์‚ฝ์ž…ํ•  ์ž๋ฆฌ๊ฐ€ ์žˆ์–ด์•ผํ•œ๋‹ค. ๋”ฐ๋ผ์„œ, ์‚ฝ์ž…ํ•  ์œ„์น˜ ๋’ค์— ์ €์žฅ๋œ ์›์†Œ๋“ค์„ ํ•œ์ž๋ฆฌ์”ฉ ์ด๋™์‹œ์ผœ์•ผํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ณต๋ฐฑ์ด ์ƒ๊ธฐ๋ฉด, ๊ทธ ์ž๋ฆฌ์— ์ƒˆ๋กœ์šด ์›์†Œ๋ฅผ ์‚ฝ์ž…ํ•œ๋‹ค.

์ƒˆ๋กœ์šด ์›์†Œ๋ฅผ ์‚ฝ์ž…ํ•  ๋•Œ์˜ ์ž๋ฆฌ์ด๋™ ํšŸ์ˆ˜ = n - k + 1 = ๋งˆ์ง€๋ง‰ ์›์†Œ์˜ ์ž๋ฆฟ๊ฐ’ - ์‚ฝ์ž…ํ•  ์ž๋ฆฌ์˜ ์ธ๋ฑ์Šค + 1

๋ฐ˜๋Œ€๋กœ ์›์†Œ์˜ ์‚ญ์ œ์˜ ๊ฒฝ์šฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ž๋ฆฌ์ด๋™์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์ค‘๊ฐ„์— ๋นˆ ๊ณต๋ฐฑ์„ ๋ฉ”๊พธ๊ธฐ ์œ„ํ•ด์„œ ๋’ค์—์žˆ๋˜ ์›์†Œ๋“ค์„ ์‚ญ์ œ๋œ ์›์†Œ์ชฝ์œผ๋กœ ํ•œ์นธ์”ฉ ๋‹น๊ฒจ์ค˜์•ผํ•œ๋‹ค. 

์›์†Œ ์‚ญ์ œ์‹œ ์ž๋ฆฌ์ด๋™ ํšŸ์ˆ˜ =  n - k = ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค - ์‚ญ์ œ๋œ ์ธ๋ฑ์Šค

 

*2์ฐจ์› ๋ฐฐ์—ด์˜ ๋ฌผ๋ฆฌ์  ์ €์žฅ ๋ฐฉ๋ฒ•

 

*ํ–‰ ์šฐ์„  ์ˆœ์„œ ๋ฐฉ๋ฒ•(row major order) - C ์ปดํŒŒ์ผ๋Ÿฌ์˜ ๋ฐฉ์‹

 

ํ–‰๋ฒˆํ˜ธ๋ฅผ ๊ธฐ์ค€์œผ๋กœ  ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•.  (์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ฑ…์ฝ์„๋•Œ์™€ ๊ฐ™์€ ์ˆœ์„œ๋Œ€๋กœ)

์ด๋ฆ„ ์ฃผ์†Œ ์ถœ์„๋ฒˆํ˜ธ ์ด๋ฉ”์ผ
kim  seoul 99 abc@naver.com
you tokyo 77 test@naver,com

์ฆ‰, ์œ„ ํ‘œ์˜ 2์ฐจ์› ๋ฆฌ์ŠคํŠธ๋ฅผ ํ–‰ ์šฐ์„  ๋ฐฉ๋ฒ•์œผ๋กœ ๋‚˜์—ดํ•ด๋ณด๋ฉด

๋ฉ”๋ชจ๋ฆฌ ์ €์žฅ ์ˆœ์„œ =>  {kim, seoul , 99, abc@naver.com , you, tokyo, 77, test@naver.com} 

               3์ฐจ์› ๋ฆฌ์ŠคํŠธ๋ถ€ํ„ฐ๋Š” ํ–‰ ์šฐ์„  ์ˆœ์„œ ๋ฐฉ๋ฒ•์ด "๋ฉด ์šฐ์„ ์ˆœ์„œ ๋ฐฉ๋ฒ•"์œผ๋กœ ๋ช…์นญ์ด ๋ฐ”๋€๋‹ค. ์•Œ์•„๋งŒ ๋†“์ž

 

 

 

*์—ด ์šฐ์„  ์ˆœ์„œ ๋ฐฉ๋ฒ•(column major order)

์—ด๋ฒˆํ˜ธ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•. (์œ„์—์„œ ์•„๋ž˜๋กœ)

๋ฉ”๋ชจ๋ฆฌ ์ €์žฅ ์ˆœ์„œ => (kim , you , seoul, tokyo , 99,77 , abc@naver.com , test@naver.com)

 


*์—ฐ๊ฒฐ ์ž๋ฃŒ๊ตฌ์กฐ (Linked Data Structure)

์ˆœ์ฐจ ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ๋ฌผ๋ฆฌ์  ์ˆœ์„œ = ๋…ผ๋ฆฌ์  ์ˆœ์„œ ์ด๊ธฐ ๋•Œ๋ฌธ์—, ์‚ฝ์ž… ๋ฐ ์‚ญ์ œ์‹œ์— ์›์†Œ๋“ค์˜ ์œ„์น˜๋ฅผ ์ด๋™์‹œ์ผœ์•ผ๋งŒ ํ–ˆ๋‹ค. ์ด๋Š” ํ•„์š”ํ•œ ์ž‘์—… ์ด์™ธ์˜ ์ถ”๊ฐ€์ ์ธ ์ž‘์—…๊ณผ ์‹œ๊ฐ„์ด ์†Œ์š”๋˜๋ฏ€๋กœ ์ˆœ์ฐจ ์ž๋ฃŒ๊ตฌ์กฐ์˜ ๋น„ํšจ์œจ์„ฑ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

์—ฐ๊ฒฐ ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ๋ฌผ๋ฆฌ์  ์ˆœ์„œ != ๋…ผ๋ฆฌ์  ์ˆœ์„œ์ด๋‹ค. ๋”ฐ๋ผ์„œ ๋ฌผ๋ฆฌ์  ์ˆœ์„œ๋ฅผ ๋งž์ถ”๊ธฐ์œ„ํ•ด ์˜ค๋ฒ„ํ—ค๋“œ(์ถ”๊ฐ€์  ์ž‘์—… ๋ฐ ์‹œ๊ฐ„์†Œ์š”)๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์œผ๋ฉฐ, ํฌ๊ธฐ ๋ณ€๊ฒฝ์ด ์œ ์—ฐํ•˜๊ณ  ๋” ํšจ์œจ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

 

 

*์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์˜ ์ข…๋ฅ˜

  • ๋‹จ์ˆœ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ
  • ์›ํ˜• ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ
  • ์ด์ค‘ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ
  • ์ด์ค‘ ์›ํ˜• ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ

 

์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋Š” <์›์†Œ, ์ฃผ์†Œ>์˜ ๊ตฌ์กฐ๋ฅผ ๊ฐ–๋Š”๋‹ค.

์›์†Œ๋Š” Data field๋ผ๊ณ  ํ•˜๋ฉฐ ์›์†Œ์˜ ๊ฐ’์„ ์ €์žฅํ•œ๋‹ค. ์ฃผ์†Œ๋Š” link field๋ผ๊ณ  ํ•˜๋ฉฐ ๋‹ค์Œ ๋…ธ๋“œ์˜ ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•œ๋‹ค. (C์—์„œ๋Š” ํฌ์ธํ„ฐ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฃผ์†Œ๊ฐ’์„ ์ €์žฅ)

 

์š”์ผ์„ ์ˆœ์ฐจ ์„ ํ˜• ๋ฆฌ์ŠคํŠธ์™€ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋กœ ํ‘œํ˜„ํ•˜๋ฉด ์ฐจ์ด์ ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

*์ˆœ์ฐจ ๋ฆฌ์ŠคํŠธ

์ˆœ์ฐจ ์„ ํ˜• ๋ฆฌ์ŠคํŠธ์—์„œ์˜ ์š”์ผ

 

*์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ

์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ ์ด๋ฆ„์„ ํฌ์ธํ„ฐ ๋ณ€์ˆ˜ ๋ผ๊ณ  ๋งํ•œ๋‹ค. ํฌ์ธํ„ฐ ๋ณ€์ˆ˜๋Š” ๋ฆฌ์ŠคํŠธ์˜ ์ฒซ๋ฒˆ์งธ ๋…ธ๋“œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋™์‹œ์—, ์—ฐ๊ฒฐ๋œ ๋ฆฌ์ŠคํŠธ ์ „์ฒด๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฆฌ์ŠคํŠธ์˜ ๋งˆ์ง€๋ง‰ ๋…ธ๋“œ์˜ link field์—๋Š” ์ด ์›์†Œ๊ฐ€ ๋์ž„์„ ์•Œ๋ฆฌ๊ธฐ ์œ„ํ•ด์„œ null์„ ์ €์žฅํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ๊ณต๋ฐฑ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์—๋Š” null์ด ๋“ค์–ด๊ฐ€์žˆ๋‹ค.

 

* ๋‹จ์ˆœ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ(singly linked list) ์˜ ์‚ฝ์ž…/์‚ญ์ œ

*์‚ฝ์ž…

week = { <์›”,200> <๊ธˆ,300> <์ผ,null> }  "์›”"๊ณผ "๊ธˆ"์‚ฌ์ด์— "์ˆ˜"๋ฅผ ์‚ฝ์ž…ํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ์˜ˆ๋กœ๋“ค๋ฉด

1. ๊ณต๋ฐฑ๋…ธ๋“œ๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค๊ณ , ํฌ์ธํ„ฐ๊ฐ€ ์ด ๋…ธ๋“œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ฒŒํ•œ๋‹ค.

2. data field์— "์ˆ˜"๋ผ๋Š” ๊ฐ’์„ ์ €์žฅํ•œ๋‹ค. (์ˆ˜์˜ ์œ„์น˜๋Š” 150์ด๋ผ๊ณ  ํ•ด๋ณด์ž)

3. <์ˆ˜>์˜ link feild์— 200์„ ๊ฐ€๋ฆฌํ‚ค๋„๋ก ์ €์žฅํ•œ๋‹ค. 200์€ "๊ธˆ"์˜ ์œ„์น˜์ด๋‹ค.  - <์ˆ˜,200>

4. ๋‹ค์Œ์œผ๋กœ๋Š” ์›”์˜ link feild๋ฅผ "์ˆ˜"๋ฅผ ๊ฐ€๋ฅดํ‚ค๋„๋ก ๋ฐ”๊ฟ”์ค€๋‹ค.

week = { <์›”,150> <์ˆ˜,200> <๊ธˆ,300> <์ผ,null> } ์ด ๋œ๋‹ค.

 

 

*์‚ญ์ œ

์‚ญ์ œ์˜ ๊ฒฝ์šฐ์—๋„ ๋น„์Šทํ•œ๋‹ค. ์›์†Œ๋ฅผ ์‚ญ์ œํ•˜๊ณ  ์ˆœ์„œ๋ฅผ ๋งž์ถ”๊ธฐ ์œ„ํ•ด ์‚ญ์ œํ•œ ์›์†Œ ๋ฐ”๋กœ์•ž ๋…ธ๋“œ์˜ link field๊ฐ’์„ ์กฐ์ •ํ•˜๊ฒŒ ๋œ๋‹ค.

 

 

 

 

*์›ํ˜• ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ (circular linked list)

๋‹จ์ˆœ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์—์„œ๋Š” ๋งˆ์ง€๋ง‰ ๋…ธ๋“œ๊ฐ€ ๋์„ ์•Œ๋ฆฌ๊ธฐ ์œ„ํ•ด null์„ ๊ฐ€๋ฆฌ์ผฐ๋‹ค. ์›ํ˜• ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์—์„œ๋Š” ๋งˆ์ง€๋ง‰ ๋…ธ๋“œ๊ฐ€ ์ฒซ ๋ฒˆ์งธ ๋…ธ๋“œ๋ฅผ ๊ฐ€๋ฅดํ‚ค๊ธฐ ๋•Œ๋ฌธ์— ๊ณ„์† ์›์„ ๋Œ๋“ฏ์ด ์ˆœํšŒํ•˜๊ฒŒ ๋œ๋‹ค.

 

*๊ณต๋ฐฑ ๋ฆฌ์ŠคํŠธ์ผ ๊ฒฝ์šฐ์—๋Š” ์ž๊ธฐ์ž์‹ ์ด ์ฒ˜์Œ์ด์ž ๋์ด๋ฏ€๋กœ, ํฌ์ธํ„ฐ(๋ฆฌ์ŠคํŠธ์ด๋ฆ„)์€ ๋…ธ๋“œ A๋ฅผ ๊ฐ€๋ฅดํ‚ค๊ณ , A๋Š” ์ž๊ธฐ ์ž์‹ ์„ ๊ฐ€๋ฅดํ‚ค๊ฒŒ ๊ตฌ์„ฑ๋œ๋‹ค.

*์›ํ˜• ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์˜ ์‚ฝ์ž…

๋งˆ์ง€๋ง‰ ๋…ธ๋“œ - ์ฒซ ๋ฒˆ์งธ ๋…ธ๋“œ์˜ ์—ฐ๊ฒฐ๋ถ€์œ„๋งŒ ์ œ์™ธํ•˜๋ฉด ๋‹จ์ˆœ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์—์„œ์˜ ์‚ฝ์ž…๊ณผ ๊ฐ™๋‹ค.

 

 

 

Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.