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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/linked_list_sourav.rb +22 -9
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 40e267bfca7eeb6aab2b6b39ef283dd11c35c6ab
4
- data.tar.gz: 31e48251e30853e24c7dc3cc498fe92a9cd32f15
3
+ metadata.gz: 7d20fe6458b9632734e8ec4247827fd66153bf3f
4
+ data.tar.gz: 38085eb4af4dc04f999ce2962567b9c3aa667ea0
5
5
  SHA512:
6
- metadata.gz: 70c632fc3bc7e6b80435937c55e291ca4ca8fdc652fc7029aab6d02f9ad8f4762b4298946c52d1d6424b53ff75436e69c93dba8d04e7328f078e386f2addea3e
7
- data.tar.gz: 29f4eb801595c0b8521e7719db2d7fa1cee2548c03580033dc6a0f6eb303ef09fc21c03a788fbaf636109e3c4bd27fc25e5a5127241eba2467dba61ad5e5abe4
6
+ metadata.gz: b5289719f0a93b692c8d89955696ca69f4bb3ce1bb56ff6f9d3b92a23470abecac41d393cb2ce6a631e52a11377e8b7368faaba7b2852f35fc7c2a34571ac555
7
+ data.tar.gz: 19a0ce31b8ee157576fb0332f0ebcbfb23d2f3c6e060ced731b116797d3bbee5ec041cf7ad661924538bd7d01660f954936a74562e3de60155b1c14982698eb2
@@ -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 === @head
158
- @head = dnode.forward
159
- elsif dnode.forward == nil
160
- prev_dnode = dnode.backward
161
- prev_dnode.forward = nil
162
- else
163
- prev_dnode, next_dnode = dnode.backward, dnode.forward
164
- prev_dnode.forward, next_dnode.backward = next_dnode, prev_dnode
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.13
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-02-14 00:00:00.000000000 Z
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