Skip to content

๐Ÿฟ ์ž๋ฃŒ๊ตฌ์กฐ ๊ฐœ๋… ์ •๋ฆฌ (2) ์Šคํƒ, ํ, ๋ฑ, ํ•ด์‹œํ…Œ์ด๋ธ”, ์…‹ย #81

@leemember

Description

@leemember

๐Ÿง‘๐Ÿปโ€๐Ÿซ ์ž๋ฃŒ๊ตฌ์กฐ

๐Ÿ“์Šคํƒ

  • ๋จผ์ € ๋“ค์–ด๊ฐ„ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‚˜์ค‘์— ๋‚˜์˜ค๋Š” ๊ฒƒ์ด ๊ทœ์น™์ด๋‹ค.

์ผ์ƒ ์ƒํ™œ์—์„œ ์˜ˆ๋ฅผ ๋“ค์–ด๋ณด์ž๋ฉด, ์—˜๋ ˆ๋ฒ ์ดํ„ฐ๋‚˜ ์ง€ํ•˜์ฒ  ๋ฒ„์Šค๋ฅผ ํƒ€๊ณ  ๋‚ด๋ฆด ๋•Œ ๋Šฆ๊ฒŒ ๋“ค์–ด๊ฐ„ ์‚ฌ๋žŒ์ด ๋จผ์ € ๋‚˜์˜ค๊ฒŒ ๋˜๋Š” ๊ฒฝ์šฐ๋ฅผ ์ด ์Šคํƒ์ด๋ผ๋Š” ๊ฐœ๋…์— ๋น„์œ ํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์ถ”์ƒ ์ž๋ฃŒํ˜•

๋จผ์ €, ์ถ”์ƒ์ž๋ฃŒํ˜•์€ ๊ธฐ๋Šฅ์˜ ๊ตฌํ˜„ ๋ถ€๋ถ„์„ ๋‚˜ํƒ€๋‚ด์ง€ ์•Š๊ณ  ์ˆœ์ˆ˜ํ•œ ๊ธฐ๋Šฅ์ด ๋ฌด์—‡์ธ์ง€ ๋‚˜์—ดํ•œ ๊ฒƒ์„ ์ถ”์ƒ ์ž๋ฃŒํ˜•์ด๋ผ๊ณ  ํ•œ๋‹ค.

์Šคํƒ์˜ ์ถ”์ƒ ์ž๋ฃŒํ˜•

  • push ๋ฐ์ดํ„ฐ ์‚ฝ์ž…
  • pop ๋ฐ์ดํ„ฐ ์ œ๊ฑฐ
  • peek ๋ฐ์ดํ„ฐ ์ฐธ์กฐ
  • isEmpty ๋น„์—ˆ๋Š”์ง€ ์ฒดํฌ

push๋กœ ํ•˜์—ฌ๊ธˆ ์Šคํƒ์— ๋ฐ์ดํ„ฐ๋“ค์ด ์Œ“์ธ๋‹ค. ๊ทธ๋ฆฌ๊ณ  pop ํ•จ์ˆ˜๋กœ ์ธํ•ด ๋Šฆ๊ฒŒ ๋“ค์–ด์˜จ ๋ฐ์ดํ„ฐ๊ฐ€ ๋จผ์ € ๋‚˜๊ฐ„๋‹ค.

๐Ÿ“ํ

  • ๋จผ์ € ๋“ค์–ด๊ฐ„ ๋ฐ์ดํ„ฐ๊ฐ€ ๋จผ์ € ๋‚˜์˜ค๋Š” ๊ฒƒ์ด ๊ทœ์น™์ด๋‹ค.
    ์Šคํƒ๊ณผ์˜ ๋ฐ˜๋Œ€๋˜๋Š” ๊ฐœ๋…์ด๋ผ๊ณ  ๋ณด๋ฉด๋œ๋‹ค.

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

ํ์˜ ์ถ”์ƒ ์ž๋ฃŒํ˜•

  • enqueue ๋ฐ์ดํ„ฐ ์‚ฝ์ž…
  • dequeue ๋ฐ์ดํ„ฐ ์ œ๊ฑฐ
  • front ๋ฐ์ดํ„ฐ ์ฐธ์กฐ
  • isEmpty ๋น„์—ˆ๋Š”์ง€ ํ™•์ธ

๋ฐ์ดํ„ฐ๊ฐ€ ์‚ฝ์ž…, ์‚ญ์ œ๋  ๋•Œ ์ด์ „ ๋…ธ๋“œ๋ฅผ ์ƒˆ๋กœ ์‚ฝ์ž…ํ•œ ๋…ธ๋“œ๋กœ ์„ค์ •ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  head์— ์‚ฝ์ž…ํ•˜๋Š” ๊ฒฝ์šฐ์™€ tail์— ์‚ฝ์ž…ํ•˜๋Š” ๊ฒฝ์šฐ ๊ทธ ์™ธ ์œ„์น˜์— ์‚ฝ์ž…ํ•˜๋Š” ๊ฒฝ์šฐ์˜ ์ฝ”๋“œ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ง ๋‹ค.

๐Ÿ“๋ฑ

  • ์Šคํƒ๊ณผ ํ๋ฅผ ์งฌ๋ฝ• ์‹œํ‚จ ์ž์œ ๋กœ์šด ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค.

๋ฑ์˜ ์ถ”์ƒ ์ž๋ฃŒํ˜•

  • printAll : ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.
  • addFirst : head์— ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•œ๋‹ค.
  • removeFirst : head์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค.
  • addLast : tail์— ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•œ๋‹ค.
  • removeLast : tail์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค.
  • isEmpty : ๋น„์—ˆ๋Š”์ง€ ํ™•์ธ

๐Ÿ“ํ•ด์‹œํ…Œ์ด๋ธ”

  • ํ•ด์‹œ ํ…Œ์ด๋ธ”์€ **ํ•ด์‹œ์™€ ํ…Œ์ด๋ธ”์ด ํ•ฉ์ณ์ง„ ์ž๋ฃŒ๊ตฌ์กฐ (key์™€ value ๊ฐ’์ด๋ผ๊ณ  ๋ณด๋ฉด ๋จ)**์ด๋‹ค. ๋งŒ์ผ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•œ๋‹ค๋ฉด ์ธ๋ฑ์Šค๋“ค์„ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋กœ ์ค‘๋ณต๋œ ๊ฐ’๋“ค ๋‘˜ ๋‹ค ์ €์žฅ์„ํ•œ๋‹ค.

ํ•ด์‹œํ…Œ์ด๋ธ”์˜ ์ถ”์ƒ ์ž๋ฃŒํ˜•

  • set : key์™€ value์— ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•œ๋‹ค.
  • get : key์™€ value์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์ค€๋‹ค.
  • remove : key์™€ value์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค.

ํ•ด์‹œํ…Œ์ด๋ธ”์˜ ์žฅ์ 

  • ๋น ๋ฅธ ๋ฐ์ดํ„ฐ ์ฝ๊ธฐ, ์‚ฝ์ž…, ์‚ญ์ œ

๋‹จ์ 

  • ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋งŽ์ด ์ฐจ์ง€ํ•œ๋‹ค.
  • ํ•ด์‹œ ํ•จ์ˆ˜์— ๋”ฐ๋ผ ๊ณต๊ฐ„์˜ ๋‚ญ๋น„๊ฐ€ ๊ทน๋Œ€ํ™”๋  ์ˆ˜๋„ ์žˆ๊ณ  ์กฐ๊ธˆ ๋œํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
  • ์ข‹์€ ํ•ด์‹œ ํ•จ์ˆ˜์˜ ๊ตฌํ˜„์€ ํ•„์ˆ˜๋‹ค.

๐Ÿ“์…‹

  • ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค.
  • ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๋‹ค๊ฐ€ ์ค‘๋ณต๋˜์ง€ ์•Š๋Š” ๊ฐ’์„ ์ €์žฅํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์…‹์„ ์ด์šฉํ•˜๋ฉด ๋œ๋‹ค. ์…‹์€ ํ•ด์‹œ ํ…Œ์ด๋ธ”์„ ์ด์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • key๊ฐ’๋งŒ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

์…‹์˜ ์ถ”์ƒ ์ž๋ฃŒํ˜•

  • add(data) : key์™€ value์— ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•œ๋‹ค.
  • isContain(data) : ๋ฐ์ดํ„ฐ ์ฒดํฌ
  • remove(data) : key์™€ value์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค.

์œ„ ๊ด„ํ˜ธ์•ˆ์— data๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋œปํ•œ๋‹ค.

  • clear() : ์…‹์„ ๋น„์šฐ๊ธฐ
  • isEmpty() : ์…‹์ด ๋น„์—ˆ๋Š”์ง€ ์ฒดํฌ
  • printAll() : ๋ชจ๋“  ๋ฐ์ดํ„ฐ ์ถœ๋ ฅ

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions