큐도 FIFO 으로 단박에 설명되는 자료구조
가장 간단한 배열로 구현한 것이다.
이 큐는 데이터의 사용에 의해 앞부분 공간이 점차적으로 사용불가 상태가 된다.
(front 와 rear가 계속 전진하기 때문)
이를 해결하는 것으로 환형(원형) 큐가 있는데, 환형 큐의 구현은 vol. 3 으로...
결과>
가장 간단한 배열로 구현한 것이다.
이 큐는 데이터의 사용에 의해 앞부분 공간이 점차적으로 사용불가 상태가 된다.
(front 와 rear가 계속 전진하기 때문)
이를 해결하는 것으로 환형(원형) 큐가 있는데, 환형 큐의 구현은 vol. 3 으로...
# Normal Queue Implementation
# Jungtaek Lim(Heart), 2009-03-03
class Queue
def initialize(size)
@memory = []
@front = -1
@rear = -1
@queue_size = size
end
def is_empty
return @front == @rear
end
def is_full
return (@front + 1) >= @queue_size
end
def enqueue(data)
return nil if is_full
@front += 1
@memory[@front] = data
end
def dequeue
return nil if is_empty
@rear += 1
return @memory[@rear]
end
end
queue = Queue.new(3)
puts queue.enqueue("Data1")
puts queue.enqueue("Data2")
puts queue.dequeue
puts queue.enqueue("Data3")
puts queue.enqueue("Data4")
puts queue.dequeue
puts queue.dequeue
puts queue.dequeue
|
결과>
Data1
Data2
Data1
Data3
nil
Data2
Data3
nil
'Dev.Programming > DS/Algorithm' 카테고리의 다른 글
| Deck(Deque, Double-ended Queue) - in Ruby (0) | 2009/03/04 |
|---|---|
| Circular Queue - in Ruby (0) | 2009/03/04 |
| Queue - in Ruby (4) | 2009/03/04 |
| Stack - in Ruby (0) | 2009/03/03 |
| 간단한 문제...(연속된 숫자 그룹 맺어주기) (0) | 2008/09/23 |
| 바람개비 별찍기(for 문 2개 이용) (0) | 2008/06/12 |


