[Data_Structer] Array & Linked List

Array & Linked List


Array

Array๋Š” ์—ฐ๊ด€๋œ data๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์ƒ์— ์—ฐ์†์ ์ด๋ฉฐ ์ˆœ์ฐจ์ ์œผ๋กœ ๋ฏธ๋ฆฌ ํ• ๋‹น๋œ ํฌ๊ธฐ๋งŒํผ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ

๐Ÿ’ก Array์™€ Linked List์˜ ๊ฐ€์žฅ ํฐ ์ฐจ์ด์ ์€ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋˜๋Š” ๋ฐฉ์‹๊ณผ ์ด์— ๋”ฐ๋ฅธ operation์˜ ์—ฐ์‚ฐ ์†๋„(time complexity)

Array์˜ ํŠน์ง•

  • ๊ณ ์ •๋œ ์ €์žฅ ๊ณต๊ฐ„(fixed-size)
  • ์ˆœ์ฐจ์ ์ธ ๋ฐ์ดํ„ฐ ์ €์žฅ(order)

Array์˜ ์žฅ์ ์€ lookup๊ณผ append๊ฐ€ ๋น ๋ฅด๋‹ค. ๋”ฐ๋ผ์„œ ์กฐํšŒ๋ฅผ ์ž์ฃผ ํ•ด์•ผ๋˜๋Š” ์ž‘์—…์—์„œ๋Š” Array ์ž๋ฃŒ๊ตฌ์กฐ ์ž์ฃผ์‚ฌ์šฉ

Array์˜ ๋‹จ์ ์€ fixed-size ํŠน์„ฑ์ƒ ์„ ์–ธ์‹œ์— Array์˜ ํฌ๊ธฐ๋ฅผ ๋ฏธ๋ฆฌ ์ •ํ•ด์•ผ ๋œ๋‹ค.

์ด๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„๋‚˜ ์ถ”๊ฐ€์ ์ธ overhead๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

์‹œ๊ฐ„๋ณต์žก๋„

ย  Array
access O(1)
append O(1)
๋งˆ์ง€๋ง‰ ์›์†Œdelete O(1)
insertion O(n)
deletion O(n)
search O(n)

Q. Dynamic Array

  • Array์˜ ๊ฒฝ์šฐ size๊ฐ€ ๊ณ ์ •๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์„ ์–ธ์‹œ์— ์„ค์ •ํ•œ size๋ณด๋‹ค ๋งŽ์€ ๊ฐฏ์ˆ˜์˜ data๊ฐ€ ์ถ”๊ฐ€๋˜๋ฉด ์ €์žฅ X.
  • Dynamic Array๋Š” ์ €์žฅ๊ณต๊ฐ„์ด ๊ฐ€๋“ ์ฐจ๊ฒŒ ๋˜๋ฉด resize๋ฅผ ํ•˜์—ฌ ์œ ๋™์ ์œผ๋กœ size๋ฅผ ์กฐ์ ˆํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ
  1. resize๋ฅผ ํ•˜๋Š” ๋ฐฉ์‹
  2. ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€(append)ํ•  ๋•Œ์˜ ์‹œ๊ฐ„๋ณต์žก๋„

Dynamic Array

  • Dynamic Array๋Š” size๋ฅผ ์ž๋™์ ์œผ๋กœ resizing์„ ํ•˜๋Š” Array

  • ๊ธฐ์กด์— ๊ณ ์ •๋œ size๋ฅผ ๊ฐ€์ง„ Static Array์˜ ํ•œ๊ณ„์ ์„ ๋ณด์™„

  • Dynamic Array๋Š” data๋ฅผ ๊ณ„์† ์ถ”๊ฐ€ํ•˜๋‹ค๊ฐ€ ๊ธฐ์กด์— ํ• ๋‹น๋œ memory๋ฅผ ์ดˆ๊ณผํ•˜๊ฒŒ ๋˜๋ฉด, size๋ฅผ ๋Š˜๋ฆฐ ๋ฐฐ์—ด์„ ์„ ์–ธ ํ›„, ๊ทธ๊ณณ์œผ๋กœ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์˜ฎ๊น€์œผ๋กœ์จ ๋Š˜์–ด๋‚œ ํฌ๊ธฐ์˜ size๋ฅผ ๊ฐ€์ง„ ๋ฐฐ์—ด

  • resizing ์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ์žˆ๋Š”๋ฐ, ๋Œ€ํ‘œ์ ์œผ๋กœ ๊ธฐ์กด Array size์˜ 2๋ฐฐ size๋ฅผ ํ• ๋‹นํ•˜๋Š” doubling ๋ฐฉ๋ฒ•์ด ์žˆ์Œ.

Doubling

๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€(append O(1)) ํ•˜๋‹ค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ดˆ๊ณผํ•˜๊ฒŒ ๋˜๋ฉด ๊ธฐ์กด ๋ฐฐ์—ด์˜size๋ณด๋‹ค ๋‘๋ฐฐ ํฐ ๋ฐฐ์—ด์„ ์„ ์–ธํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ผ์ผ์ด ์˜ฎ๊ธฐ๋Š”(n๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ผ์ผ์ด ์˜ฎ๊ฒจ์•ผ ํ•˜๋ฏ€๋กœ O(n)) ๋ฐฉ๋ฒ•

๋ถ„ํ• ์ƒํ™˜ ์‹œ๊ฐ„๋ณต์žก๋„ Amortized time complexity

Dynamic array์— ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ๋งˆ๋‹ค $O(1)$์˜ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๊ฒŒ ๋œ๋‹ค. โ†’ ์ถ”๊ฐ€๋ฅผ ํ•˜๋‹ค๊ฐ€ ๋ฏธ๋ฆฌ ์„ ์–ธ๋œ size๋ฅผ ๋„˜์–ด์„œ๋Š” ์ˆœ๊ฐ„์—, resize โ†’ ์ด ๋•Œ๋Š” ์ผ์ผ์ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ์˜ฎ๊ฒจ์•ผ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋•Œ๋งŒํผ์€$O(n)$์˜ ์‹œ๊ฐ„๋ณต์žก๋„

append์˜ ์ด ๊ณผ์ •์„ ์‚ดํŽด๋ณด๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค์— ์ถ”๊ฐ€ํ•˜๋Š”(O(1))์ž‘์—…์ด ๋Œ€๋‹ค์ˆ˜์ด๊ณ , size๋ฅผ ๋„˜์–ด์„ค ๋•Œ๋Š” size๋ฅผ ๋‘ ๋ฐฐ ๋Š˜๋ฆฌ๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ผ์ผ์ด ์˜ฎ๊ธฐ๋Š” ๊ณผ์ • (resize O(n))์ด ์•„์ฃผ ๊ฐ€๋” ๋ฐœ์ƒ

append์˜ ์ „์ฒด์ ์ธ ์‹œ๊ฐ„๋ณต์žก๋„๋Š” O(1)

Linked List

Linked List๋Š” Node๋ผ๋Š” ๊ตฌ์กฐ์ฒด๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋Š”๋ฐ, Node๋Š” ๋ฐ์ดํ„ฐ ๊ฐ’๊ณผ ๋‹ค์Œ Node์˜ address๋ฅผ ์ €์žฅ. Linked List๋Š” ๋ฌผ๋ฆฌ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ์ƒ์—์„œ๋Š” ๋น„์—ฐ์†์ ์œผ๋กœ ์ €์žฅ์ด ๋˜์ง€๋งŒ Linked list๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฐ๊ฐ์˜ Node๊ฐ€ next Node์˜ address๋ฅผ ๊ฐ€๋ฆฌํ‚ด์œผ๋กœ์จ ๋…ผ๋ฆฌ์ ์ธ ์—ฐ์†์„ฑ์„ ๊ฐ€์ง„ ์ž๋ฃŒ๊ตฌ์กฐ

๐Ÿ’ก Linked List๋Š” tree, graph๋“ฑ ๋‹ค๋ฅธ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์ž์ฃผ ์“ฐ์ด๋Š” ๊ธฐ๋ณธ ์ž๋ฃŒ๊ตฌ์กฐ

  • Linked list๋ฅผ ์„ค๋ช…ํ•  ๋•Œ์—๋Š” ๋ฉ”๋ชจ๋ฆฌ์ƒ์—์„œ ๋ถˆ์—ฐ์†์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜๋Š” ์ ๊ณผ Node์˜ next address๋ฅผ ํ†ตํ•ด ๋ถˆ์—ฐ์†์ ์ธ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ ๋…ผ๋ฆฌ์  ์—ฐ์†์„ฑ์„ ๋ณด์žฅ

  • ๋ฐ์ดํ„ฐ๊ฐ€ ์ถ”๊ฐ€ ๋˜๋Š” ์‹œ์ ์—์„œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ข€ ๋” ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ 

๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ ๊ด€์ ์—์„œ ๋ณธ Linked list - ๋น„์—ฐ์†์ 

๋…ผ๋ฆฌ์  ์—ฐ์†์„ฑ

๊ฐ Node๋“ค์€ next address์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋…ผ๋ฆฌ์ ์œผ๋กœ ์—ฐ์†์„ฑ์„ ์œ ์ง€ํ•˜๋ฉด์„œ ์—ฐ๊ฒฐ Array์˜ ๊ฒฝ์šฐ, ์—ฐ์†์„ฑ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ ์ƒ์—์„œ ์ˆœ์ฐจ์ ์œผ๋กœ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์˜€๊ณ , Linked list์—๋Š” ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์—ฐ์†์„ฑ์„ ์œ ์ง€ํ•˜์ง€ ์•Š์•„๋„ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ์ด ์ข€ ๋” ์ž์œ ๋กœ์šด ๋Œ€์‹ , Next address๋ฅผ ์ถ”๊ฐ€์ ์œผ๋กœ ์ €์žฅํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ ํ•˜๋‚˜๋‹น ์ฐจ์ง€ํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋” ์ปค์ง€๊ฒŒ ๋œ๋‹ค.

(1) ๊ทธ๋ฆผ์—์„œ ๋งํฌ๋“œ๋ฆฌ์ŠคํŠธ๊ฐ€ ์—ฐ์†์ ์œผ๋กœ ์ €์žฅ๋œ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ ์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ์ƒ์—์„œ๋Š” (2)์™€ ๊ฐ™๋‹ค

(1) ๋…ผ๋ฆฌ์  ์—ฐ์†์„ฑ

(2) ๋ฌผ๋ฆฌ์  ๋ถˆ์—ฐ์†์„ฑ

์‹œ๊ฐ„๋ณต์žก๋„

Array์˜ ๊ฒฝ์šฐ ์ค‘๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…/์‚ญ์ œํ•˜๊ฒŒ ๋˜๋ฉด ํ•ด๋‹น ์ธ๋ฑ์Šค์˜ ๋’ค์— ์žˆ๋Š” ๋ชจ๋“  ์›์†Œ๋“ค์€ shift -> O(n)์˜ ์‹œ๊ฐ„๋ณต์žก๋„ Linked list๋ฅผ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์˜ฎ๊ธธ ํ•„์š”์—†์ด next address๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ฃผ์†Œ๊ฐ’๋งŒ ๋ณ€๊ฒฝํ•˜๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์— O(1)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋กœ ์‚ฝ์ž…/์‚ญ์ œ๊ฐ€ ๊ฐ€๋Šฅ

ย  Linked list
access O(n)
search O(n)
insertion O(1)
deletion (1)

image

image



Q. โญ Array vs Linked list๋ฅผ ๋น„๊ต

Array๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ƒ์—์„œ ์—ฐ์†์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ Linked List๋Š” ๋ฉ”๋ชจ๋ฆฌ์ƒ์—์„œ๋Š” ์—ฐ์†์ ์ด์ง€ ์•Š์ง€๋งŒ, ๊ฐ๊ฐ์˜ ์›์†Œ๊ฐ€ ๋‹ค์Œ ์›์†Œ์˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๊ฐ’์„ ์ €์žฅํ•ด ๋†“์Œ์œผ๋กœ์จ ๋…ผ๋ฆฌ์  ์—ฐ์†์„ฑ์„ ์œ ์ง€

๊ฐ operation์˜ ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ ๋‹ค๋ฆ„.

๋ฐ์ดํ„ฐ ์กฐํšŒ๋Š” Array์˜ ๊ฒฝ์šฐ O(1), Linked list๋Š” O(n)์˜ ์‹œ๊ฐ„๋ณต์žก๋„ ๊ฐ€์ง€๋ฉฐ, ์‚ฝ์ž…/์‚ญ์ œ๋Š” Array O(n), Linked list O(1)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง„๋‹ค.

๐Ÿ’ก์ถ”์ฒœ

์–ผ๋งˆ๋งŒํผ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ• ์ง€ ๋ฏธ๋ฆฌ ์•Œ๊ณ ์žˆ๊ณ , ์กฐํšŒ๋ฅผ ๋งŽ์ด ํ•œ๋‹ค๋ฉด Array๋ฅผ ์‚ฌ์šฉ

๋ฐ˜๋ฉด์— ๋ช‡๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ง€ ๋ถˆํ™•์‹คํ•˜๊ณ  ์‚ฝ์ž… ์‚ญ์ œ๊ฐ€ ์žฆ๋‹ค๋ฉด Linked list๋ฅผ ์‚ฌ์šฉ

๐Ÿ’ก Array์™€ Linked List์˜ ์ฃผ๋œ ์ฐจ์ด์ ๋“ค์€ ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ์˜ ์ฐจ์ด!

Array๋Š” ๋ฉ”๋ชจ๋ฆฌ์ƒ์—์„œ ์—ฐ์†์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ , Linked List๋Š” ๋ถˆ์—ฐ์†์ ์œผ๋กœ ์ €์žฅ

๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ์˜ ์ฐจ์ด๋กœ ์ธํ•ด operation๊ตฌํ˜„๋ฐฉ๋ฒ•์ด ๋‹ค๋ฅด๊ณ  ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ ๋‹ฌ๋ผ์ง„๋‹ค. ๋˜ํ•œ ๋ฉ”๋ชจ๋ฆฌ ํ™œ์šฉ๋„์—์„œ๋„ ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค.

์ƒํ™ฉ์— ๋”ฐ๋ผ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๊ฐ€ ๋‹ฌ๋ผ์ง„๋‹ค.

์กฐํšŒ (lookup)

Array๋Š” ๋ฉ”๋ชจ๋ฆฌ์ƒ์—์„œ ์—ฐ์†์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜์˜€๊ธฐ ๋•Œ๋ฌธ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ์— ์ฆ‰์‹œ ์ ‘๊ทผ(random access O(1))ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด์™€ ๋ฐ˜๋ฉด Linked List๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ƒ์—์„œ ๋ถˆ์—ฐ์†์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ˆœ์ฐจ ์ ‘๊ทผ(Sequential Access)๋งŒ ๊ฐ€๋Šฅ. ์ฆ‰, ํŠน์ • index์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๊ธฐ ์œ„ํ•ด O(n)์˜ ์‹œ๊ฐ„๋ณต์žก๋„

์‚ฝ์ž…/์‚ญ์ œ (insert/delete)

Array์˜ ๊ฒฝ์šฐ ๋งจ ๋งˆ์ง€๋ง‰ ์›์†Œ๋ฅผ ์ถ”๊ฐ€/์‚ญ์ œํ•˜๋ฉด ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ O(1)

ํ•˜์ง€๋งŒ ๋งจ ๋งˆ์ง€๋ง‰ ์›์†Œ๊ฐ€ ์•„๋‹Œ ์ค‘๊ฐ„์— ์žˆ๋Š” ์›์†Œ๋ฅผ ์‚ฝ์ž…/์‚ญ์ œํ•˜๋ฉด ํ•ด๋‹น ์›์†Œ๋ณด๋‹ค ํฐ ์ธ๋ฑ์Šค์˜ ์›์†Œ๋“ค์„ ํ•œ ์นธ์”ฉ shift ํ•ด์ค˜์•ผ ํ•˜๋Š” ๋น„์šฉ(cost)์ด ๋ฐœ์ƒ ๋”ฐ๋ผ์„œ, ์ด ๊ฒฝ์šฐ์—๋Š” ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ O(n)

Linked List๋Š” ์–ด๋Š ์›์†Œ๋ฅผ ์ถ”๊ฐ€/์‚ญ์ œ ํ•˜๋”๋ผ๋„ node์—์„œ ๋‹ค์Œ์ฃผ์†Œ๋ฅผ ๊ฐ€๋ฅดํ‚ค๋Š” ๋ถ€๋ถ„๋งŒ ๋‹ค๋ฅธ ์ฃผ์†Œ ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์— shiftํ•  ํ•„์š” ์—†์–ด ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ O(1)

ํ•˜์ง€๋งŒ Linked list์˜ ๊ฒฝ์šฐ ์ถ”๊ฐ€/์‚ญ์ œ๋ฅผ ํ•˜๋ ค๋Š” index๊นŒ์ง€ ๋„๋‹ฌํ•˜๋Š”๋ฐ O(n)์˜ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์—, ์‹ค์งˆ์ ์œผ๋กœ Linked List๋„ ์ถ”๊ฐ€/์‚ญ์ œ ์‹œ์— O(n)์˜ ์‹œ๊ฐ„๋ณต์žก๋„ ๊ฐ€์ง„๋‹ค.

memory

Array์˜ ์ฃผ๋œ ์žฅ์ ์€ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ๊ณผ append๊ฐ€ ๋น ๋ฅด๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„๋ผ๋Š” ๋‹จ์ , ๋ฐฐ์—ด์€ ์„ ์–ธ์‹œ์— fixed size๋ฅผ ์„ค์ •ํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น

์ฆ‰, ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ์ง€ ์•Š๋”๋ผ๋„ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ฐจ์ง€ํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„๊ฐ€ ๋ฐœ์ƒ.

์ด์™€ ๋ฐ˜๋ฉด Linked List๋Š” runtime์ค‘์—์„œ๋„ size๋ฅผ ๋Š˜๋ฆฌ๊ณ  ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ initial size๋ฅผ ๊ณ ๋ฏผํ•  ํ•„์š” ์—†๊ณ , ํ•„์š”ํ•œ ๋งŒํผ memorry allocation์„ ํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„๊ฐ€ ์—†๋‹ค.

์ฐธ์กฐ : ๊ฐœ๋ฐœ๋‚จ๋…ธ์”จ ์ž๋ฃŒ๊ตฌ์กฐ

Leave a comment