ds_algo 0.0.5 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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)