ordered_ds 1.0.1 → 1.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/ordered_ds.rb +8 -0
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d9a8a07dd46959758a348493a35f3320ecf7d39f03245c0c0a427e718e936a52
4
- data.tar.gz: 0a37156519aa6313ee525a23c2b13eb0447f2d2456b6a7bafa2a7a1ce8d23ea4
3
+ metadata.gz: 7a943103e96d394a520af9c9ca6377dbd780749064c11e54aa69bfd62e07c25c
4
+ data.tar.gz: be7562dcc6eb2cb47c37d3f9f53b2014e6c86386fa4ab8be1d01e894688af54a
5
5
  SHA512:
6
- metadata.gz: 28540d59778755070c408e372ab9d12616cb08d1d695126d63edfb6c5fc9a16ae3fe7edf23d90f902c7cea4613423e764e05a32666859a1e4bf49f79cf374b2d
7
- data.tar.gz: f516ae08fb145bede577be79ea6443fd167b26f27832be19da05895eff7f87889f200de7228c5e9d1f2fb77730470511ee9f16610fbddea59d365713f2ed11f8
6
+ metadata.gz: 518f0105e1868a804377623f33c2b3bf78efcf54ec926f433c7713cb01c0399ee0c74b8c5e00502224127f72e337941b4cfdcbc828cf81e05cfb52379f60dba9
7
+ data.tar.gz: 4153bbe301542b4a291f2a19493fcddd91767cdb00e1cc51c0c6dd86e99b831994f9778e7086e777d479f772daf248e9f1cbd038c5a5a09a4e1a7153ffc7ca6e
data/lib/ordered_ds.rb CHANGED
@@ -14,6 +14,13 @@ class PQ
14
14
  def size = @a.size
15
15
  def empty? = @a.empty?
16
16
  def top = @a.first
17
+ def push_pop(x) = !@a.empty? && @u.(x, @a.first) ? pop_push(x) : x
18
+
19
+ def pop_push x
20
+ t, @a[0], = @a.first, x
21
+ sink 0
22
+ t
23
+ end
17
24
 
18
25
  def << x
19
26
  i = @a.size
@@ -24,6 +31,7 @@ class PQ
24
31
  @a[p], @a[i] = @a[i], @a[p]
25
32
  i = p
26
33
  end
34
+ self
27
35
  end
28
36
 
29
37
  def pop
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ordered_ds
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Viktor Reznov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-10-29 00:00:00.000000000 Z
11
+ date: 2023-11-01 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email: