ν°μ€ν 리 λ·°
νμ νμ©
μλ£λ₯Ό μμ±νλ μμ κ³Ό κ·Έ μλ£λ₯Ό μ΄μ©νλ μμ μ΄ λΉλκΈ°μ μΌλ‘(asynchronously) μΌμ΄λλ κ²½μ°
μλ£λ₯Ό μμ±νλ μμ μ΄ μ¬λ¬ κ³³μμ μΌμ΄λλ κ²½μ°
μλ£λ₯Ό μ΄μ©νλ μμ μ΄ μ¬λ¬κ³³μμ μΌμ΄λλ κ²½μ°
μλ£λ₯Ό μμ±νλ μμ κ³Ό κ·Έ μλ£λ₯Ό μ΄μ©νλ μμ μ΄ μμͺ½ λ€ μ¬λ¬ κ³³μμ μΌμ΄λλ κ²½μ°
μλ£λ₯Ό μ²λ¦¬νμ¬ μλ‘μ΄ μλ£λ₯Ό μμ±νκ³ , λμ€μ κ·Έ μλ£λ₯Ό λ μ²λ¦¬ν΄μΌ νλ μμ μ κ²½μ°
νν ν(Circular Queue)
μ ν΄μ§ κ°μμ μ μ₯ 곡κ°μ λΉ λλ €κ°λ©° μ΄μ©
νκ° κ°λμ°¨λ©΄ λμ΄μ μμλ₯Ό λ£μ μ μμΌλ νκ° κ°λ μ°Όλμ§ λΉμ΄μλμ§ νλ¨νκΈ° μν΄μλ νμ κΈΈμ΄λ₯Ό κΈ°μ΅νκ³ μμ΄μΌνλ€.
νν νμ μΆμμ μλ£κ΅¬μ‘° ꡬν
νν νλ₯Ό ꡬννλλ°μλ μ ν λ°°μ΄μ μ΄μ©νκ±°λ μ°κ²°λ¦¬μ€νΈλ₯Ό μ΄μ©ν μ μμ§λ§ μ¬κΈ°μμλ μ ν λ°°μ΄μ μ΄μ©νλ€. μ ν λ°°μ΄κ³Ό μ°κ²° 리μ€νΈμ μ₯λ¨μ μ μκ°ν΄λ³΄κ³ νν νλ₯Ό λ§λλλ° μμ΄ μ΄λ€ μ₯μ μ νν΄μΌνλμ§ μκ°ν΄λ³΄μ.....
μ°μ°μ μ μ
- size() - νμ¬ νμ λ€μ΄μλ λ°μ΄ν° μμμ μλ₯Ό ꡬν¨
- isEmpty() - νμ¬ νκ° λΉμ΄ μλμ§ νλ¨
- isFull() - νμ λ°μ΄ν° μμκ° κ½ μ°¨ μλμ§ νλ¨
- enqueue(x) - λ°μ΄ν° μμ x λ₯Ό νμ μΆκ°
- dequeue() - νμ 맨 μμ μ μ₯λ λ°μ΄ν° μμλ₯Ό μ κ±°(λλ λ°ν)
- peek() - νμ 맨 μμ μ μ₯λ λ°μ΄ν° μμλ₯Ό λ°ν (μ κ±°νμ§ μμ)
λ°°μ΄λ‘ ꡬνν νν ν
class CircularQueue:
# λΉ νλ₯Ό μ΄κΈ°ν (μ£Όμ΄μ§ μΈμλ‘ νμ μ΅λ) κΈΈμ΄ μ€μ
def __init__(self, n):
self.maxCount = n
self.data = [None] * n
self.count = 0
self.front = -1
self.rear = -1
# νμ¬ ν κΈΈμ΄λ₯Ό λ°ν
def size(self):
return self.count
# νκ° λΉμ΄μλκ°?
def isEmpty(self):
return self.count == 0
# νκ° κ½ μ°¨μλκ°?
def isFull(self):
return self.count == self.maxCount
# μ ν΄μ§ 곡κ°μ λΉ λλ €κ°λ©° μ΄μ©, μ¦ κ³΅κ°μ μ¬νμ©ν΄μΌ νκΈ° λλ¬Έμ,
# front μ rear λ₯Ό λ§λ₯ μ¦κ°μν€κΈ°λ§ ν¨μΌλ‘μ¨λ νν νλ₯Ό ꡬμ±ν μ μλ€. -> ννμ λλ¨Έμ§λ₯Ό μ΄μ©νμ!!!
# νμ λ°μ΄ν° μμ μΆκ°
def enqueue(self, x):
if self.isFull():
# IndexError('Queue full') exceptionμΌλ‘ μ²λ¦¬
pass
self.rear = (self.rear + 1) % self.maxCount
self.data[self.rear] = x
self.count += 1
# νμμ λ°μ΄ν° μμ λ½μλ΄κΈ°
def dequeue(self):
if self.isEmpty():
raise IndexError('Queue empty')
self.front = (self.front + 1) % self.maxCount
x = self.data[self.front]
self.count -= 1
return x
# νμ 맨 μ μμ λ€μ¬λ€ 보기
def peek(self):
if self.isEmpty():
raise IndexError('Queue empty')
return self.data[(self.front + 1) % self.maxCount]
ν΄κ·Ό 8λΆμ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
'(ꡬ)μλ£κ΅¬μ‘°&μκ³ λ¦¬μ¦' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
νΈλ¦¬ (Trees) (0) | 2020.06.25 |
---|---|
μ°μ μμ ν (Priority Queues) (0) | 2020.06.25 |
ν (Queues) (0) | 2020.06.24 |
μ€νμ μμ© - νμ νκΈ° μμ κ³μ° (0) | 2020.06.24 |
μ€νμ μμ© - μμμ νμ νκΈ°λ² (Postfix Notation) (0) | 2020.06.23 |
- Total
- Today
- Yesterday
- κ²μν μ‘°ν
- κ°λ°ν경ꡬμΆ
- μ΄ν΄λ¦½μ€ μ€μΉ
- λΆνΈ μλμμ±
- μ¨λ¦¬μμ€
- κ²μλ¬Όμ‘°ν
- java νκ²½λ³μ
- μκ³ λ¦¬μ¦
- Java
- typeAliases
- μλ°
- Algorithm
- κ²μν μμ
- mysqlμ€μΉ
- μ΄ν΄λ¦½μ€ νκΈ μΈμ½λ©
- λ³λͺ μ²λ¦¬
- tomcatμ€μΉ
- μ€νλ§λΆνΈ μλμμ±
- κ²μνλ§λ€κΈ°
- μλ£κ΅¬μ‘°
- κ²μλ¬Ό μμ
- κ°λ°
- java jdk μ€μΉ
- μ 체κ²μλ¬Ό μ‘°ν
μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |