Class: PriorityQueue

Inherits:
Object
  • Object
show all
Defined in:
lib/priority_queue.rb

Overview

a naive (performance-wise) priority queue implementation

modified from www.rubyquiz.com/quiz98.html

Instance Method Summary collapse

Constructor Details

#initialize(sort_proc = nil) ⇒ PriorityQueue

:nodoc: this isn’t ready for primetime yet



5
6
7
8
# File 'lib/priority_queue.rb', line 5

def initialize sort_proc = nil
  @list = []
  @sort_proc = sort_proc || proc{|x,y| x <=> y}
end

Instance Method Details

#add(item) ⇒ Object Also known as: <<



10
11
12
13
14
# File 'lib/priority_queue.rb', line 10

def add(item)
  @list << item
  @list.sort!(&@sort_proc)
  self
end

#empty?Boolean

Returns:

  • (Boolean)


26
27
28
# File 'lib/priority_queue.rb', line 26

def empty?
  @list.empty?
end

#frontObject



18
19
20
# File 'lib/priority_queue.rb', line 18

def front
  @list.first
end

#lengthObject



30
31
32
# File 'lib/priority_queue.rb', line 30

def length
  @list.length
end

#popObject



22
23
24
# File 'lib/priority_queue.rb', line 22

def pop
  @list.shift
end