splaytree 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c63b99bb2fb5b4964f06f89b6d30ee8aec87b00a
4
- data.tar.gz: b04a5e1d21bd39e3e0b5a237104b8c43f36811c6
3
+ metadata.gz: 73a4e84bcf265f76d0ebd5817322cd5bff004d5a
4
+ data.tar.gz: 2cb43c9b89bcef31c0f57e8b7b8846ef151d909f
5
5
  SHA512:
6
- metadata.gz: ddfb60c119269a6105ee7656aec1143dec67d465031f02df748981778703c781c3313d213fd927eb4222ec2e9b6d70a3c0eee1b78461057194ea486251612e52
7
- data.tar.gz: cb55c77d73bfabed3183cf6281ec2453f2445ee3ce188a7f6b610a186a71de7db8e511cbbc9953e4e7faf8350a95022b555e5298eb19d9d1e099f3def02fef92
6
+ metadata.gz: 9031aa6721fce6a62e7b2439971848f3f9025663ac23f21beabfec6d2fe884f1f9e47047d58bb8517a0d8c1ac05deb9828128c181c7e46c98d0bdc95f3053bec
7
+ data.tar.gz: 19c451a080f67b6c3a3d7594ea94c4a744c637ed1d135c99a390902e7ecdda4586ffa95abe57e65781f2c48ad41da0d91ec659427819c6c9d5f2cfb7ac691b90
@@ -1,3 +1,3 @@
1
1
  class Splaytree
2
- VERSION = '0.2.0'
2
+ VERSION = '0.3.0'
3
3
  end
data/lib/splaytree.rb CHANGED
@@ -65,7 +65,13 @@ class Splaytree
65
65
  end
66
66
 
67
67
  def height
68
- height_recursive(@root)
68
+ subtree_height = -> (node) do
69
+ return 0 unless node
70
+ left = 1 + subtree_height.call(node.left)
71
+ right = 1 + subtree_height.call(node.right)
72
+ left > right ? left : right
73
+ end
74
+ subtree_height.call(@root)
69
75
  end
70
76
 
71
77
  def duplicates(key)
@@ -237,14 +243,6 @@ class Splaytree
237
243
  node.to_h
238
244
  end
239
245
 
240
- def height_recursive(node)
241
- return 0 unless node
242
-
243
- left_height = 1 + height_recursive(node.left)
244
- right_height = 1 + height_recursive(node.right)
245
- left_height > right_height ? left_height : right_height
246
- end
247
-
248
246
  def splay(node)
249
247
  until node.root?
250
248
  parent = node.parent
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: splaytree
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Artur Babagulyyev