๐Ÿ”ฅ linked list & hash table

yeeun leeยท2020๋…„ 7์›” 29์ผ
1

1. linked list

Linked List๋Š” Array List์™€๋Š” ๋‹ค๋ฅด๊ฒŒ ์š”์†Œ์™€ ์š”์†Œ ๊ฐ„์˜ ์—ฐ๊ฒฐ(link)์„ ์ด์šฉํ•ด์„œ ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ตฌํ˜„ํ•œ ๊ฒƒ์„ ์˜๋ฏธ. (์ฐธ๊ณ  ๋งํฌ)

๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ(์‚ฝ์ž…, ์‚ญ์ œ)์—๋Š” ๋†’์€ ์„ฑ๋Šฅ์„ ๋ณด์ด๋‚˜, ์กฐํšŒ ๋ฐ ์บ์‹ฑ์˜ ๊ฒฝ์šฐ ์„ฑ๋Šฅ์ด ๋–จ์–ด์ง„๋‹ค๋Š” ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.


์ƒํ™œ์ฝ”๋”ฉ ๋งํฌ

- list

ํŠน์ง•

  • ์‚ฌ์ด์ฆˆ๊ฐ€ ๊ณ ์ •๋˜์–ด ์žˆ๊ณ (=๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹น), ์ธ๋ฑ์Šค๋กœ ๊ฐ’์„ ํƒ์ƒ‰ํ•จ
  • ์—ฐ์†์ ์ธ ๋ฌถ์Œ์œผ๋กœ ์ €์žฅ๋˜์–ด ์กฐํšŒ์— ์šฉ์ด

๋‹จ์ 

  • ์‚ฝ์ž…, ์‚ญ์ œ ์‹œ ์ธ๋ฑ์Šค๊ฐ€ ๋ณ€๊ฒฝ๋˜์–ด ๋นˆ ๊ฐ’์„ ์ฑ„์›Œ์ฃผ๋Š” ๋ถ€๊ฐ€์  ์—ฐ์‚ฐ์ด ํ•„์š”ํ•จ. ์‚ฝ์ž…, ์‚ญ์ œ๊ฐ€ ๋นˆ๋ฒˆํ•œ ํ”„๋กœ์„ธ์Šค์˜ ๊ฒฝ์šฐ ์น˜๋ช…์ 
  • ํฌ๊ธฐ๊ฐ€ ํ•œ์ •๋˜์–ด ์žˆ์–ด ์žฌ์กฐ์ •ํ•  ๊ฒฝ์šฐ ์ƒ๋‹นํ•œ ์—ฐ์‚ฐ๋Ÿ‰์ด ์š”๊ตฌ๋จ

- linked list

๊ตฌ์„ฑ์š”์†Œ

ํŠน์ง•

  • ์‚ฌ์ด์ฆˆ๊ฐ€ ๋ฌดํ•œํ•˜๊ณ (๋ฉ”๋ชจ๋ฆฌ ์šฉ๋Ÿ‰์ด ๋ฌดํ•œํ•  ๊ฒฝ์šฐ), link field(์ฐธ์กฐ์ž, ํฌ์ธํ„ฐ)๋กœ ๋‹ค์Œ ๋…ธ๋“œ๋ฅผ ์•Œ ์ˆ˜ ์žˆ์Œ
  • ์—ฐ๊ฒฐ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๊ตฌ์กฐ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ˆœ์ฐจ ์ ‘๊ทผ๋งŒ ๊ฐ€๋Šฅ
  • ์ฃผ์†Œ๋งŒ ์—ฐ๊ฒฐํ•˜๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์‚ฝ์ž…, ์‚ญ์ œ๊ฐ€ ๋ฆฌ์ŠคํŠธ์— ๋น„ํ•ด ๋น ๋ฅด๊ณ  ์‰ฌ์›€

๋‹จ์ 

  • ๋ถˆ์—ฐ์†์  ๋‹จ์œ„๋กœ ์ €์žฅ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์กฐํšŒ์— ๋ถˆ๋ฆฌ, ํฌ์ธํ„ฐ๋กœ ์ธํ•ด ์ €์žฅ๊ณต๊ฐ„์„ ๋” ์“ฐ๊ฒŒ๋จ

2. hash table

key-value 1:1 ๋งคํ•‘์— ์‚ฌ์šฉ๋˜๋Š” ์ž๋ฃŒ ๊ตฌ์กฐ. ํ•ด์‹œ ํ…Œ์ด๋ธ”์€ ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด ์ธ๋ฑ์Šค๋ฅผ ์ €์žฅ์†Œ(๋ฒ„ํ‚ท, ์Šฌ๋กฏ)์˜ ๋ฐฐ์—ด๋กœ ๊ณ„์‚ฐํ•œ๋‹ค. ์ด ๋•Œ value๋ฅผ ์•Œ๊ณ  ์‹ถ์œผ๋ฉด key๊ฐ’์„ ํ•ด์‹œํ•จ์ˆ˜๋ฅผ ์จ์„œ ์ธ๋ฑ์Šค๋ฅผ ๊ตฌํ•˜๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ํƒ์ƒ‰์— ์œ ๋ฆฌํ•˜๋‹ค.

- ๊ตฌ์„ฑ์š”์†Œ

ํ•ด์‹œ ํ•จ์ˆ˜

  • ํ‚ค๊ฐ’์„ ํ•ด์‹œ๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ์—ญํ• .
  • ํ‚ค๊ฐ’์˜ ๊ธธ์ด๋ฅผ ๋‹จ์ผํ™”์‹œ์ผœ ์ €์žฅ์†Œ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์šด์˜ํ•  ์ˆ˜ ์žˆ์Œ
  • ์„œ๋กœ ๋‹ค๋ฅธ ํ‚ค๊ฐ€ ๊ฐ™์€ ํ•ด์‹œ๋ฅผ ๊ฐ€์งˆ ๊ฒฝ์šฐ ํ•ด์‹œ ์ถฉ๋Œ์ด ์ƒ๊ฒจ, ์ด๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•จ

ํ•ด์‹œ

  • ํ•ด์‹œ ํ•จ์ˆ˜์˜ ๊ฒฐ๊ณผ๋ฌผ๋กœ, ์ €์žฅ์†Œ์— ๊ฐ’๊ณผ ๊ฐ™์ด ๋งค์นญ๋˜์–ด ์ €์žฅ๋จ
  • ์ธ๋ฑ์Šค๊ฐ’์ด ๋ถˆ๊ทœ์น™ํ•จ

- ํŠน์ง•

์žฅ์ 

key๊ฐ’์œผ๋กœ value๋ฅผ ๋น ๋ฅด๊ฒŒ ์ ‘๊ทผ, ์กฐ์ž‘ ๊ฐ€๋Šฅ

๋‹จ์ 

  • ์ˆœ์„œ๊ฐ€ ์žˆ๋Š” ๋ฐฐ์—ด์—๋Š” ์–ด์šธ๋ฆฌ์ง€ ์•Š์Œ
  • ๊ณต๊ฐ„ ํšจ์œจ์„ฑ์ด ๋–จ์–ด์ง
  • ํ•ด์‹œ ํ•จ์ˆ˜ ์˜์กด๋„๊ฐ€ ๋†’์Œ
profile
์ด์‚ฌ๊ฐ„ ๋ธ”๋กœ๊ทธ: yenilee.github.io

1๊ฐœ์˜ ๋Œ“๊ธ€