lazy_priority_queue 0.0.0 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/lazy_priority_queue.rb +12 -0
  3. metadata +9 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0fd645a3f0b657b9d5f8d406e3d1c36e88d4e9f0
4
- data.tar.gz: 805c1d6fdc15a7604b05457c896009e6e4af17de
3
+ metadata.gz: ad75f66fb343a6f9ccf9f3d531172bf550c47901
4
+ data.tar.gz: 454b6fed5f8e191d41c50a35ba90668ef44fe2c5
5
5
  SHA512:
6
- metadata.gz: 34178a91738b2884553b73555f9e1a5daaa4a60deb6735ff26fad10704aaf417bc8f244384256dec41eae70ca6343aeac2833581f4e5c8aca89d88e1904132b6
7
- data.tar.gz: c963785af0360405e04a0bf0b6b4ce3cfd23e70f8c59a7c7eb710bc5b2bd2ab40f000dc603ea39757c5e1d124ce13b2fcfb7e345d3bc756992ceaa2aabce84a0
6
+ metadata.gz: 6375ce0f1ed00787843eaf642489d069e9f799c331b638b424b5c4c1494c79cc553a71be0a61fa63a706bf17fa810c4da653d73cc6614dc2e2fa9e4cfc7c9c7b
7
+ data.tar.gz: 07c52e047784873415bc5a1e1d7e47c77d72e32ebcfe4855699002548527489602f05b163a4555a00a1d2eb54a13f2eba52948fee8e1f8ab72687c55cac53a39
@@ -25,6 +25,8 @@ class LazyPriorityQueue
25
25
 
26
26
  element
27
27
  end
28
+ alias_method :push, :enqueue
29
+ alias_method :insert, :enqueue
28
30
 
29
31
  def change_priority element, new_key
30
32
  node = @references[element]
@@ -68,6 +70,7 @@ class LazyPriorityQueue
68
70
 
69
71
  element
70
72
  end
73
+ alias_method :pop, :dequeue
71
74
 
72
75
  def delete element
73
76
  change_priority element, @top_condition
@@ -76,6 +79,7 @@ class LazyPriorityQueue
76
79
 
77
80
  def empty?; @references.empty? end
78
81
  def size; @references.size end
82
+ alias_method :length, :size
79
83
 
80
84
  private
81
85
 
@@ -135,10 +139,18 @@ class MinPriorityQueue < LazyPriorityQueue
135
139
  def initialize
136
140
  super(-Float::INFINITY) { |parent_node, child_node| parent_node.key <= child_node.key }
137
141
  end
142
+
143
+ alias_method :decrease_key, :change_priority
144
+ alias_method :min, :peek
145
+ alias_method :extract_min, :dequeue
138
146
  end
139
147
 
140
148
  class MaxPriorityQueue < LazyPriorityQueue
141
149
  def initialize
142
150
  super( Float::INFINITY) { |parent_node, child_node| parent_node.key >= child_node.key }
143
151
  end
152
+
153
+ alias_method :increase_key, :change_priority
154
+ alias_method :max, :peek
155
+ alias_method :extract_max, :dequeue
144
156
  end
metadata CHANGED
@@ -1,19 +1,19 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lazy_priority_queue
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matías Battocchia
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-11 00:00:00.000000000 Z
11
+ date: 2016-01-12 00:00:00.000000000 Z
12
12
  dependencies: []
13
- description: Lazy priority queue is a priority queue which implements a lazy binomial
14
- heap. It supports the change priority operation, being suitable for algorithms like
15
- Dijkstra's shortest path and Prim's minimum spanning tree. It can be instantiated
16
- as a min-priority queue as well as a max-priority queue.
13
+ description: Lazy priority queue is a pure Ruby priority queue which implements a
14
+ lazy binomial heap. It supports the change priority operation, being suitable for
15
+ algorithms like Dijkstra's shortest path and Prim's minimum spanning tree. It can
16
+ be instantiated as a min-priority queue as well as a max-priority queue.
17
17
  email: matias@riseup.net
18
18
  executables: []
19
19
  extensions: []
@@ -43,5 +43,7 @@ rubyforge_project:
43
43
  rubygems_version: 2.4.5.1
44
44
  signing_key:
45
45
  specification_version: 4
46
- summary: A priority queue which implements a lazy binomial heap.
46
+ summary: A priority queue implemented using a lazy binomial heap. It allows change
47
+ priority operation.
47
48
  test_files: []
49
+ has_rdoc: