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 +4 -4
- data/lib/data_struct/linked_list.rb +2 -2
- data/lib/data_struct/queue.rb +2 -2
- data/lib/data_struct/stack.rb +1 -1
- data/lib/data_struct/tree.rb +46 -7
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3142017407f40cacf010031a1ca79567ea97210c70c8476a0900827323f82dd5
|
4
|
+
data.tar.gz: 959bd8eb3d29fc76d305e558f5459c77a0ca0ca6beb730dfc11d7cf6f3438763
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
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
|
131
|
+
def unshift(val)
|
132
132
|
in_length
|
133
133
|
return @head = DoublyNode.new(val) if @head.nil?
|
134
134
|
|
data/lib/data_struct/queue.rb
CHANGED
data/lib/data_struct/stack.rb
CHANGED
data/lib/data_struct/tree.rb
CHANGED
@@ -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
|
-
@
|
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
|
-
|
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.
|
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-
|
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.
|
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)
|