stack-queue

μŠ€νƒ

Last In First Out으둜 μ΅œκ·Όμ— μΆ”κ°€ν•œ ν•­λͺ©μ΄ κ°€μž₯ λ¨Όμ € μ œκ±°λ˜λŠ” 데이터 방식

βœ” ν•¨μˆ˜

  • pop() : μŠ€νƒμ—μ„œ κ°€μž₯ μœ„μ— μžˆλŠ” ν•­λͺ©μ„ 제거

  • push() : itemν•˜λ‚˜λ₯Ό μŠ€νƒμ˜ κ°€μž₯ μœ— 뢀뢄에 μΆ”κ°€

  • peek() : μŠ€νƒμ˜ κ°€μž₯ μœ„μ—μžˆλŠ” ν•­λͺ©μ„ μ œκ±°μ—†μ΄ κ°’λ§Œ λ°˜ν™˜

  • isEmpty() : μŠ€νƒμ΄ λΉ„μ—ˆλŠ”μ§€ 검사

βœ” μ‚¬μš© 예

  • μž¬κ·€ μ•Œκ³ λ¦¬μ¦˜

  • μ›Ή 방문기둝

  • μ‹€ν–‰ μ·¨μ†Œ

μ—°κ²° listλ₯Ό μ΄μš©ν•œ μ½”λ“œ 예(C μ–Έμ–΄)

큐

First In First Out으둜 κ°€μž₯ λ¨Όμ € μΆ”κ°€ν•œ 데이터가 λ¨Όμ € μ œκ±°λ˜λŠ” 데이터 방식

βœ” ν•¨μˆ˜

  • add(inQueue)() : 큐의 끝 뢀뢄에 데이터 μΆ”κ°€

  • remove(deQueue)() :큐의 첫번째 ν•­λͺ©μ„ 제거

  • peek() : 큐의 κ°€μž₯ μœ„μ—μžˆλŠ” ν•­λͺ©μ„ μ œκ±°μ—†μ΄ κ°’λ§Œ λ°˜ν™˜

  • isEmpty() : 큐가 λΉ„μ—ˆλŠ”μ§€ 검사

βœ” μ‚¬μš© 예

  • ν”„λ‘œμ„ΈμŠ€ 관리

  • λ„ˆλΉ„ μš°μ„  탐색(BFS)

  • μΊμ‹œ κ΅¬ν˜„

  • μš°μ„ μˆœμœ„ 큐

  • 덱

μ—°κ²° listλ₯Ό μ΄μš©ν•œ μ½”λ“œ 예(C μ–Έμ–΄)

μš°μ„ μˆœμœ„ 큐 ( Priority Queue )


μš°μ„ μˆœμœ„μ˜ κ°œλ…μ„ 큐에 λ„μž…ν•œ 자료 ꡬ쑰.
일반적인 νλŠ” FIFO의 κ·œμΉ™μœΌλ‘œ λ¨Όμ € λ“€μ–΄μ˜¨κ²ƒμ΄ λ‚˜κ°€κ²Œ λ˜λ‚˜ μš°μ„ μˆœμœ„ νλŠ” μš°μ„ μˆœμœ„κ°€ 높은 μˆœμ„œλŒ€λ‘œ λ‚˜κ°€κ²Œ λœλ‹€.

κ΅¬ν˜„ 방법

  • λ°°μ—΄

  • 리슀트

  • νž™(Heap)

덱 ( Deque )


Double-ended queue의 μ•½μž.
μ–‘ λμ—μ„œλ§Œ 자료λ₯Ό λ„£κ³  λΊ„ 수 μžˆλŠ” 자료ꡬ쑰
일반 νμ™€μ˜ 차이점은 push,pop ν•  수 μžˆλŠ” λ°©ν–₯이 μ–‘λ°©ν–₯μ΄λΌλŠ” 것이 차이점이닀.

Last updated