์ƒˆ์†Œ์‹

CS

[์ž๋ฃŒ๊ตฌ์กฐ] ์„ ํ˜• ๋ฆฌ์ŠคํŠธ(Linear List)์™€ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ(Linked List)

  • -

๐Ÿฃ ๋ฆฌ์ŠคํŠธ(List)


์˜ค๋Š˜์€ ๋ฆฌ์ŠคํŠธ(List)์— ๋Œ€ํ•ด์„œ ์‚ดํŽด๋ณด๊ฒ ๋‹น! ์•ž์—์„œ ์‚ดํŽด๋ณธ ๊ฒƒ๊ณผ ๊ฐ™์ด! ์ž๋ฃŒ ๊ตฌ์กฐ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ์†์ ์œผ๋กœ ์—ฐ๊ฒฐํ•œ '์„ ํ˜• ๊ตฌ์กฐ'์™€ ๋ฐ์ดํ„ฐ๋ฅผ ๋น„์—ฐ์†์ ์œผ๋กœ ์—ฐ๊ฒฐํ•œ '๋น„์„ ํ˜• ๊ตฌ์กฐ'๋กœ ๋‚˜๋‰œ๋‹ค. ์„ ํ˜• ๊ตฌ์กฐ ์ค‘์— ํ•˜๋‚˜์ธ ๋ฆฌ์ŠคํŠธ์— ๋Œ€ํ•ด์„œ ์‚ดํŽด๋ณผ๊ฑด๋ฐ, ์ด๋Š” '์„ ํ˜• ๋ฆฌ์ŠคํŠธ'์™€ '์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ'๋กœ ๋‚˜๋ˆ ์„œ ์‚ดํŽด๋ณผ ์ˆ˜ ์žˆ๋‹ค!_! ์˜ค๋Š˜๋„ ๋ ˆ์ธ ๊ฝ!

 

 

์•„๋ž˜๋Š” ์ž๋ฃŒ ๊ตฌ์กฐ์˜ ๊ฐœ๋…๊ณผ ์ „์ฒด ํ‹€์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•˜์—ฌ ์ •๋ฆฌํ•œ ๊ธ€! ์ฐธ๊ณ ํ•˜๊ธฐ
 

[์ž๋ฃŒ๊ตฌ์กฐ] ์„ ํ˜•๊ตฌ์กฐ์™€ ๋น„์„ ํ˜•๊ตฌ์กฐ

๐Ÿฃ ์ž๋ฃŒ๊ตฌ์กฐ์˜ ์„ ํ˜• ๊ตฌ์กฐ์™€ ๋น„์„ ํ˜• ๊ตฌ์กฐ 1ํ•™๊ธฐ ์ž๋ฃŒ๊ตฌ์กฐ ๊ฐ•์˜์™€ ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ๋ฅผ ์ค€๋น„ํ•˜๋ฉด์„œ ์ž๋ฃŒ ๊ตฌ์กฐ ๊ทธ ์ค‘ ์„ ํ˜•๊ตฌ์กฐ์™€ ๋น„์„ ํ˜•๊ตฌ์กฐ์— ๋Œ€ํ•ด์„œ๋„ ์‚ดํŽด๋ณด๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ทธ๋ž˜๋„ ํ•œ๋ฒˆ ์ •๋ฆฌํ•˜๊ณ  ๊ฐ€๋Š”

haileyham.tistory.com

 

๐Ÿฃ ์„ ํ˜• ๋ฆฌ์ŠคํŠธ(Linear List)


1. ๊ฐœ๋…

์„ ํ˜• ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์—์„œ ๋ฐ์ดํ„ฐ ์š”์†Œ๋Š” ์ˆœ์ฐจ์  ์ˆœ์„œ๋กœ ๋ฐฐ์—ด๋˜๋ฉฐ, ๊ฐ ์š”์†Œ๋Š” ์ด์ „ ๋ฐ ๋‹ค์Œ ์ธ์ ‘ ์š”์†Œ์— ์—ฐ๊ฒฐ. ์ด ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ์ง์ ‘ ํƒ์ƒ‰ ๊ฐ€๋Šฅ. ์‚ฝ์ž…, ์‚ญ์ œ, ์•ก์„ธ์Šค์™€ ๊ฐ™์€ ์ผ๋ฐ˜์ ์ธ ์ž‘์—…์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ˆœ์ฐจ์ ์œผ๋กœ ์ˆ˜ํ–‰.

 

 

2.  ํŠน์ง•

  • ๋ฐฐ์—ด๊ณผ ๊ฐ™์ด ์—ฐ์†๋˜๋Š” ๊ธฐ์–ต ์žฅ์†Œ์— ์ €์žฅ๋˜๋Š” ๋ฆฌ์ŠคํŠธ
  • ์„ ํ˜• ๋ฆฌ์ŠคํŠธ์˜ ๋Œ€ํ‘œ์ ์ธ ๊ตฌ์กฐ๋Š” ๋ฐฐ์—ด(Array)
  • ๊ฐ€์žฅ ๊ฐ„ํŽธํ•œ ์ž๋ฃŒ๊ตฌ์กฐ, ์ ‘๊ทผ ๊ตฌ์กฐ ๋น ๋ฆ„
  • ์ž๋ฃŒ์˜ ์‚ฝ์ž…, ์‚ญ์ œ ์‹œ ๊ธฐ์กด ์ž๋ฃŒ์˜ ์ด๋™ ํ•„์š”

 

3.  ๋ฐฐ์—ด(Array)

  • ๋ฐฐ์—ด์€ ์ธ๋ฑ์Šค๋‚˜ ํ‚ค๋กœ ์‹๋ณ„๋˜๋Š” ์š”์†Œ์˜ ๋ชจ์Œ
  • ๋ชจ๋“  ์š”์†Œ๋Š” ๋™์ผํ•œ ๋ฐ์ดํ„ฐ ์œ ํ˜•์„ ๊ฐ€์ง€๋ฉฐ ์ธ์ ‘ํ•œ ๋ฉ”๋ชจ๋ฆฌ ์œ„์น˜์— ์ €์žฅ
  • ์•ก์„ธ์Šค ์‹œ๊ฐ„์€ ์ผ์ •ํ•˜์ง€๋งŒ(O(1)) ์‚ฝ์ž… ๋ฐ ์‚ญ์ œ์—๋Š” ๋น„์šฉ์ด ๋งŽ์ด ๋“ค ์ˆ˜ ์žˆ์Œ

 

 

๐Ÿฃ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ(Linked List)


1. ๊ฐœ๋…

์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋Š” ๊ฐ ๋…ธ๋“œ๊ฐ€ ๋ฐ์ดํ„ฐ์™€ ๋‹ค์Œ ๋…ธ๋“œ์— ๋Œ€ํ•œ ์ฐธ์กฐ(๋˜๋Š” ๋งํฌ)๋ฅผ ํฌํ•จํ•˜๋Š” ์ผ๋ จ์˜ ๋…ธ๋“œ. ๋‹จ์ผ ์—ฐ๊ฒฐ(๊ฐ ๋…ธ๋“œ๊ฐ€ ๋‹ค์Œ ๋…ธ๋“œ๋ฅผ ๊ฐ€๋ฆฌํ‚ด) ๋˜๋Š” ์ด์ค‘ ์—ฐ๊ฒฐ(๊ฐ ๋…ธ๋“œ๊ฐ€ ๋‹ค์Œ ๋…ธ๋“œ์™€ ์ด์ „ ๋…ธ๋“œ๋ฅผ ๋ชจ๋‘ ๊ฐ€๋ฆฌํ‚ด). ์œ„์น˜๋ฅผ ์•Œ๊ณ  ์žˆ์œผ๋ฉด ์‚ฝ์ž…๊ณผ ์‚ญ์ œ๊ฐ€ ํšจ์œจ์ ์ด์ง€๋งŒ(O(1)), ์•ก์„ธ์Šค ์‹œ๊ฐ„์€ ์„ ํ˜•(O(n)).

 

2. ํŠน์ง•

  • ๋…ธ๋“œ์˜ ํฌ์ธํ„ฐ ๋ถ€๋ถ„์œผ๋กœ ์„œ๋กœ ์—ฐ๊ฒฐ์‹œํ‚จ ๋ฆฌ์ŠคํŠธ
  • ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ์‹์— ๋”ฐ๋ผ '๋‹จ์ˆœ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ, ์›ํ˜• ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ, ์ด์ค‘ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ, ์ด์ค‘์›ํ˜• ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ'๋กœ ๊ตฌ๋ถ„
  • ๋…ธ๋“œ์˜ ์‚ฝ์ž…, ์‚ญ์ œ๊ฐ€ ์„ ํ˜• ๋ฆฌ์ŠคํŠธ์™€ ๋‹ฌ๋ฆฌ ํŽธ๋ฆฌ
  • ์—ฐ๊ฒฐ์„ ์œ„ํ•œ ํฌ์ธํ„ฐ๊ฐ€ ์ถ”๊ฐ€๋˜์–ด ์ €์žฅ ๊ณต๊ฐ„ ์ถ”๊ฐ€๋กœ ํ•„์š”
  • ํฌ์ธํ„ฐ๋ฅผ ํ†ตํ•ด ์ฐพ๋Š” ์‹œ๊ฐ„ ์ถ”๊ฐ€๋˜์–ด ์„ ํ˜• ๋ฆฌ์ŠคํŠธ์— ๋น„ํ•ด ๋А๋ฆผ

 

3. ๋…ธ๋“œ(Node)์™€ ํฌ์ธํ„ฐ(Pointer)

๋…ธ๋“œ(Node)

๋ฐ์ดํ„ฐ ์ €์žฅ ๋ถ€๋ถ„๊ณผ ํฌ์ธํ„ฐ ๋ถ€๋ถ„์œผ๋กœ ๊ตฌ์„ฑ๋œ ์ €์žฅ ๊ณต๊ฐ„

 

ํฌ์ธํ„ฐ(Pointer)

ํ˜„ ์œ„์น˜์—์„œ ๋‹ค์Œ ์œ„์น˜๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ์š”์†Œ

 

(์ฐธ๊ณ ) ๋งํฌ์™€ ํฌ์ธํ„ฐ์˜ ์ฐจ์ด

'ํฌ์ธํ„ฐ = ๋งํฌ'๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ธฐ. ๋…ธ๋“œ๋“ค์ด ํฌ์ธํ„ฐ๋กœ ์—ฐ๊ฒฐ๋˜์—ˆ๋‹ค๋Š” ํ‘œํ˜„์€ ๋งํฌ(๊ตฌํ˜„์„ ์œ„ํ•œ ๋ฌธ๋ฒ• -> ํฌ์ธํ„ฐ) ๋ผ๊ณ  ์ƒ๊ฐ.

ํฌ์ธํ„ฐ๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„ ์ฃผ์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ณ€์ˆ˜. Java๋‚˜ python ๋“ฑ์—์„œ๋Š” ํฌ์ธํ„ฐ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์ž๋™ ํ• ๋‹น ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ์ข€ ๋” ์ •ํ™•ํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋ฉด '๋…ธ๋“œ = ๋ฐ์ดํ„ฐ + ๋งํฌ'๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Œ

 

 

๐Ÿฃ ๋น„๊ตํ•˜๊ธฐ


๋Œ€ํ‘œ์ ์ธ ๊ตฌ์กฐ

์„ ํ˜• ๋ฆฌ์ŠคํŠธ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ
๋ฐฐ์—ด(Array) ๋…ธํŠธ(Node)

 

์‚ฝ์ž… ์‚ญ์ œ

์„ ํ˜• ๋ฆฌ์ŠคํŠธ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ
๊ธฐ์กด ์ž๋ฃŒ ์ด๋™ ํ•„์š” ํŽธ๋ฆฌ

 

์šฉ๋Ÿ‰

์„ ํ˜• ๋ฆฌ์ŠคํŠธ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ
๋” ์ ์€ ์šฉ๋Ÿ‰ ํฌ์ธํ„ฐ ์ถ”๊ฐ€๋กœ ์ €์žฅ ๊ณต๊ฐ„ ์ถ”๊ฐ€ ํ•„์š”

 

์ ‘๊ทผ ๊ตฌ์กฐ 

์„ ํ˜• ๋ฆฌ์ŠคํŠธ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ
๋” ๋น ๋ฅด๊ฒŒ ์ ‘๊ทผ ํฌ์ธํ„ฐ๋ฅผ ํ†ตํ•ด ์ฐพ์•„ ์„ ํ˜• ๋ฆฌ์ŠคํŠธ์— ๋น„ํ•ด ๋А๋ฆผ

 


๋‹ค์Œ์€ ์Šคํƒ, ํ, ๋ฐํฌ๋ฅผ ์•Œ์•„๋ณด์ž!
 

[์ž๋ฃŒ๊ตฌ์กฐ] ์Šคํƒ(Stack), ํ(Queue), ๋ฐํฌ(Deque)

๐Ÿฃ ์„ ํ˜• ๊ตฌ์กฐ์—์„œ์˜ ์Šคํƒ(Stack), ํ(Queue), ๋ฐํฌ(Deque)์ง€๋‚œ ์‹œ๊ฐ„์—๋Š” ์„ ํ˜• ๊ตฌ์กฐ ์ค‘์˜ ๋ฆฌ์ŠคํŠธ(List)์— ๋Œ€ํ•ด์„œ ์‚ดํŽด๋ณด์•˜๋‹ค. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” ์Šคํƒ(Stack), ํ(Queue), ๋ฐํฌ(Deque)์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•ด๋ณด์ž!   ๋ฆฌ

haileyham.tistory.com

 

 

Contents

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

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