ds_algo 0.0.5 → 0.0.6

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
  SHA256:
3
- metadata.gz: 6fc3ae32de8f716602291fada0719eea3e9e23b7b4aadca52492b6a8ce7d4a43
4
- data.tar.gz: 519a96cd24fe9c8ca97898675b5d2692d7ec0eb574ce24f43da6f632173fbecd
3
+ metadata.gz: 3142017407f40cacf010031a1ca79567ea97210c70c8476a0900827323f82dd5
4
+ data.tar.gz: 959bd8eb3d29fc76d305e558f5459c77a0ca0ca6beb730dfc11d7cf6f3438763
5
5
  SHA512:
6
- metadata.gz: 15bb60332a8a4de4ce20ebc5a0aca6bafa881ea12cb65ac9e3dca20de4e87fbae927ca67293a2640099a5b3152e7dc48df8823dd16e92847c411f3c2f19ebb97
7
- data.tar.gz: 15350ac6d7971f5775326ea41db49c57496ff86f732fc6c6d323574bdc98a1cbb8a7bb152c3fcd2a7108fd87c83d0b77c2c36f3994a84f32937b5afcc5c9dd4a
6
+ metadata.gz: 25d117c0ec37ceeece5abd411d5e8e9a4cac80c50f86cadddafa7655ca8725d6aef9d948892fec0195e86ca1510f1224a4b547a6bf238adef2ad05beb610d49e
7
+ data.tar.gz: 8d43871a0dd72738c9e9f1f0bc1b698f4a040bc252753992de2f072599574c9d31fd701e50120a518493ddbb230bb309d7ca1fd009966b3166396ed52152f636
@@ -29,7 +29,7 @@ module LinkedList
29
29
  @length = 0
30
30
  end
31
31
 
32
- def shift(val)
32
+ def unshift(val)
33
33
  in_length
34
34
  @head = SinglyNode.new val, @head
35
35
  end
@@ -128,7 +128,7 @@ module LinkedList
128
128
  @length = 0
129
129
  end
130
130
 
131
- def shift(val)
131
+ def unshift(val)
132
132
  in_length
133
133
  return @head = DoublyNode.new(val) if @head.nil?
134
134
 
@@ -19,11 +19,11 @@ class Queue
19
19
  end
20
20
 
21
21
  def front
22
- @queue[0]
22
+ @queue.first
23
23
  end
24
24
 
25
25
  def last
26
- @queue[-1]
26
+ @queue.last
27
27
  end
28
28
 
29
29
  def empty?
@@ -19,7 +19,7 @@ class Stack
19
19
  end
20
20
 
21
21
  def top
22
- @stack[-1]
22
+ @stack.last
23
23
  end
24
24
 
25
25
  def empty?
@@ -33,13 +33,49 @@ module Tree
33
33
  in_length
34
34
  @root = recur_insert @root, val
35
35
  end
36
+ def min(node = @root)
37
+ cur = node
38
+ unless node.left.nil?
39
+ cur = cur.left
40
+ end
41
+ cur
42
+ end
43
+ def max(node = @root)
44
+ cur = node
45
+ unless node.right.nil?
46
+ cur = cur.right
47
+ end
48
+ cur
49
+ end
50
+ def delete(key, node = @root)
51
+ return @root = node if node.nil?
52
+
53
+ if key < node.data
54
+ node.left = delete(key, node.left)
55
+ elsif key > node.data
56
+ node.right = delete(key, node.right)
57
+ else
58
+ if node.left.nil?
59
+ temp = node.right
60
+ node = nil
61
+ return temp
62
+ elsif node.right.nil?
63
+ temp = node.left
64
+ node = nil
65
+ return temp
66
+ end
67
+
68
+ temp = min(node.right)
69
+ node.data = temp.data
70
+ node.right = delete(temp.data, node.right)
71
+ end
72
+ @root = node
73
+ end
36
74
  def find val
37
75
  recur_search @root, val
38
76
  end
39
77
  def to_a
40
- @state_arr = []
41
- recur_pre_order(@root)
42
- @state_arr
78
+ recur_pre_order @root, []
43
79
  end
44
80
  def empty?
45
81
  @length.zero?
@@ -47,6 +83,7 @@ module Tree
47
83
  def height?
48
84
  recur_max_depth @root
49
85
  end
86
+
50
87
  private
51
88
  def recur_insert node, val
52
89
  return BinaryNode.new(val) if node.nil?
@@ -66,13 +103,15 @@ module Tree
66
103
  return recur_search(node.right, val)
67
104
  end
68
105
  recur_search(node.left, val)
106
+
69
107
  end
70
108
 
71
- def recur_pre_order node
109
+ def recur_pre_order node, state
72
110
  return if node.nil?
73
- @state_arr << node.data
74
- recur_pre_order(node.left)
75
- recur_pre_order(node.right)
111
+ state << node.data
112
+ recur_pre_order(node.left, state)
113
+ recur_pre_order(node.right, state)
114
+ state
76
115
  end
77
116
  def recur_max_depth node
78
117
  return 0 if node.nil?
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ds_algo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - imhtapm
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-07-28 00:00:00.000000000 Z
11
+ date: 2019-08-15 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: collection of data structures and algorithms for learning and to build
14
14
  (under development)
@@ -42,7 +42,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
42
42
  - !ruby/object:Gem::Version
43
43
  version: '0'
44
44
  requirements: []
45
- rubygems_version: 3.0.4
45
+ rubygems_version: 3.0.3
46
46
  signing_key:
47
47
  specification_version: 4
48
48
  summary: ruby gem for data structures and algorithms (under development)