linked_list_sourav 0.0.13 → 0.0.14
Sign up to get free protection for your applications and to get access to all the features.
- 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
|