linked_list_sourav 0.0.13 → 0.0.14
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/linked_list_sourav.rb +22 -9
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7d20fe6458b9632734e8ec4247827fd66153bf3f
|
4
|
+
data.tar.gz: 38085eb4af4dc04f999ce2962567b9c3aa667ea0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b5289719f0a93b692c8d89955696ca69f4bb3ce1bb56ff6f9d3b92a23470abecac41d393cb2ce6a631e52a11377e8b7368faaba7b2852f35fc7c2a34571ac555
|
7
|
+
data.tar.gz: 19a0ce31b8ee157576fb0332f0ebcbfb23d2f3c6e060ced731b116797d3bbee5ec041cf7ad661924538bd7d01660f954936a74562e3de60155b1c14982698eb2
|
data/lib/linked_list_sourav.rb
CHANGED
@@ -34,13 +34,14 @@ class LinkedList
|
|
34
34
|
end
|
35
35
|
|
36
36
|
class Singly
|
37
|
-
def initialize(data) # constructor
|
37
|
+
def initialize(data = nil) # constructor
|
38
38
|
if data.class == Array
|
39
39
|
@head = Node.new(data[0])
|
40
40
|
data.each.with_index { |datum, index| self.add(datum) if index > 0}
|
41
41
|
else
|
42
42
|
@head = Node.new(data)
|
43
43
|
end
|
44
|
+
@count = 1
|
44
45
|
self
|
45
46
|
end
|
46
47
|
|
@@ -64,12 +65,17 @@ class LinkedList
|
|
64
65
|
node
|
65
66
|
end
|
66
67
|
|
68
|
+
def no_of_nodes
|
69
|
+
@count
|
70
|
+
end
|
71
|
+
|
67
72
|
def add(data) # adds new members
|
68
73
|
node = @head
|
69
74
|
while (node.forward != nil)
|
70
75
|
node = node.forward
|
71
76
|
end
|
72
77
|
node.forward = Node.new(data)
|
78
|
+
@count += 1
|
73
79
|
node.forward
|
74
80
|
end
|
75
81
|
|
@@ -118,6 +124,7 @@ class LinkedList
|
|
118
124
|
if node.data === data
|
119
125
|
@head = node.forward
|
120
126
|
deleted_node = node
|
127
|
+
@count -= 1
|
121
128
|
else
|
122
129
|
node = @head
|
123
130
|
while( node != nil && node.forward != nil && (node.forward).data != data)
|
@@ -125,6 +132,7 @@ class LinkedList
|
|
125
132
|
end
|
126
133
|
if (node != nil) && (node.forward != nil)
|
127
134
|
node.forward = (node.forward).forward
|
135
|
+
@count -= 1
|
128
136
|
end
|
129
137
|
deleted_node = node.forward
|
130
138
|
end
|
@@ -140,6 +148,7 @@ class LinkedList
|
|
140
148
|
else
|
141
149
|
@head = DoublyNode.new(data)
|
142
150
|
end
|
151
|
+
@count = 1
|
143
152
|
self
|
144
153
|
end
|
145
154
|
|
@@ -149,19 +158,23 @@ class LinkedList
|
|
149
158
|
dnode = dnode.forward
|
150
159
|
end
|
151
160
|
dnode.forward = DoublyNode.new(data, dnode)
|
161
|
+
@count += 1
|
152
162
|
self
|
153
163
|
end
|
154
164
|
|
155
165
|
def delete(data) # deletes a node
|
156
166
|
dnode = find(data)
|
157
|
-
if dnode
|
158
|
-
@head
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
167
|
+
if dnode
|
168
|
+
if dnode === @head
|
169
|
+
@head = dnode.forward
|
170
|
+
elsif dnode.forward == nil
|
171
|
+
prev_dnode = dnode.backward
|
172
|
+
prev_dnode.forward = nil
|
173
|
+
else
|
174
|
+
prev_dnode, next_dnode = dnode.backward, dnode.forward
|
175
|
+
prev_dnode.forward, next_dnode.backward = next_dnode, prev_dnode
|
176
|
+
end
|
177
|
+
@count -= 1
|
165
178
|
end
|
166
179
|
dnode = nil
|
167
180
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: linked_list_sourav
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sourav Moitra
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-03-14 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: A simple linked list gem
|
14
14
|
email: sourav.moitr@gmail.con
|