stack-queue

μŠ€νƒ

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

βœ” ν•¨μˆ˜

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

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

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

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

βœ” μ‚¬μš© 예

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

  • μ›Ή 방문기둝

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

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

큐

βœ” ν•¨μˆ˜

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

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

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

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

βœ” μ‚¬μš© 예

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

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

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

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

  • 덱

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

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


κ΅¬ν˜„ 방법

  • λ°°μ—΄

  • 리슀트

  • νž™(Heap)

ν‘œν˜„ 방법
μ‚½ μž…
μ‚­ 제

μˆœμ„œ μ—†λŠ” λ°°μ—΄ / 리슀트

O(1)

O(n)

μ •λ ¬λœ λ°°μ—΄ / 리슀트

O(n)

O(1)

νž™

O(logn)

O(logn)

덱 ( Deque )


Last updated