linked_list_sourav 0.0.7 → 0.0.8

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.rb +32 -70
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bda592acfd297e23be8184a753f0827f2a710bcc
4
- data.tar.gz: 87937108038e98f019938939d50039ae939db847
3
+ metadata.gz: 97c3315a6b053758f70046f9b41f7763a81caf2e
4
+ data.tar.gz: 217b7391d54e4a031267a256014424dc5762ed8f
5
5
  SHA512:
6
- metadata.gz: feed531a4eaabc6ea648cf162b2272167edf40719610240a5b10e0faf1cbae6d83cc439ee75520386b8438d2fa490cdc788ef072201361d164bf9a2775588413
7
- data.tar.gz: c637dbf5ce5e9506dd326e568ab2ff469ee90023e976b3dc590af2a99ca0081f5d9bd6d5939be397e0c4aec4c8b09ff2ad1d90d5d256248873cc5c52a0724a0d
6
+ metadata.gz: 38f4e7db8d6da9aea93e5f5e3135851270cdf410cb1d0d424d6175d556efc68abde1ec9e0819d389f81df1f95fe0afa151c7b71fd0e3695a2964d124975dd650
7
+ data.tar.gz: 42655e960b8bf10fc9bcf1365825acfdf174b82718f52cb271824500730b06b563511b22cdd37e4ac57b2c25ba144510e6a0ff2ac5d3c9a09cdd896753bfe8ce
data/lib/linked_list.rb CHANGED
@@ -1,15 +1,15 @@
1
1
  class LinkedList
2
2
 
3
3
  class Node # this class defines one node the basic building blog of linked list
4
- attr_accessor :data, :pointer # data for holding data and pointers refers to next node
4
+ attr_accessor :data, :forward # data for holding data and forwards refers to next node
5
5
 
6
- def initialize(data, pointer = nil) #intializes when new is invoked
6
+ def initialize(data, forward = nil) #intializes when new is invoked
7
7
  @data = data
8
- @pointer = pointer
8
+ @forward = forward
9
9
  end
10
10
 
11
11
  def to_s
12
- puts "Data: #{data} Points to: #{self.pointer.data}"
12
+ puts "Data: #{data} Points to: #{self.forward.data}"
13
13
  end
14
14
  end
15
15
 
@@ -41,31 +41,31 @@ class LinkedList
41
41
  node = @head
42
42
  while (node != nil)
43
43
  puts node.data
44
- node = node.pointer
44
+ node = node.forward
45
45
  end
46
46
  end
47
47
 
48
48
  def find(data)
49
49
  node = @head
50
50
  while (node != nil && node.data != data )
51
- node = node.pointer
51
+ node = node.forward
52
52
  end
53
53
  node
54
54
  end
55
55
 
56
56
  def add(data) # adds new members
57
57
  node = @head
58
- while (node.pointer != nil)
59
- node = node.pointer
58
+ while (node.forward != nil)
59
+ node = node.forward
60
60
  end
61
- node.pointer = Node.new(data)
61
+ node.forward = Node.new(data)
62
62
  self
63
63
  end
64
64
 
65
65
  def add_a(data) # adds array members to the list
66
66
  node = @head
67
- while (node.pointer != nil)
68
- node = node.pointer
67
+ while (node.forward != nil)
68
+ node = node.forward
69
69
  end
70
70
  if data.respond_to? :each
71
71
  data.each { |datum| self.add(datum)}
@@ -85,7 +85,7 @@ class LinkedList
85
85
  array = Array.new
86
86
  while (node != nil)
87
87
  array << node.data
88
- node = node.pointer
88
+ node = node.forward
89
89
  end
90
90
  array
91
91
  end
@@ -93,10 +93,10 @@ class LinkedList
93
93
  def to_s # returns all data in form of string
94
94
  node = @head
95
95
  string = String.new(@head.data.to_s)
96
- node = node.pointer
96
+ node = node.forward
97
97
  while (node != nil)
98
98
  string << ", " << node.data.to_s
99
- node = node.pointer
99
+ node = node.forward
100
100
  end
101
101
  string
102
102
  end
@@ -105,24 +105,24 @@ class LinkedList
105
105
  node = @head
106
106
  deleted_node = ''
107
107
  if node.data === data
108
- @head = node.pointer
108
+ @head = node.forward
109
109
  deleted_node = node
110
110
  else
111
111
  node = @head
112
- while( node != nil && node.pointer != nil && (node.pointer).data != data)
113
- node = node.pointer
112
+ while( node != nil && node.forward != nil && (node.forward).data != data)
113
+ node = node.forward
114
114
  end
115
- if (node != nil) && (node.pointer != nil)
116
- node.pointer = (node.pointer).pointer
115
+ if (node != nil) && (node.forward != nil)
116
+ node.forward = (node.forward).forward
117
117
  end
118
- deleted_node = node.pointer
118
+ deleted_node = node.forward
119
119
  end
120
120
  deleted_node = nil
121
121
  end
122
122
  end
123
123
 
124
- class Doubly
125
- def initialize(data)
124
+ class Doubly < Singly
125
+ def initialize(data) # intializes
126
126
  if data.respond_to? :each
127
127
  @head = DoublyNode.new(data[0])
128
128
  data.each.with_index { |datum, index| self.add(datum) if index > 0}
@@ -141,56 +141,18 @@ class LinkedList
141
141
  self
142
142
  end
143
143
 
144
- def head #returns head
145
- @head
146
- end
147
-
148
- def parse # parses all the members
149
- dnode = @head
150
- while (dnode != nil)
151
- puts dnode.data
152
- dnode = dnode.forward
153
- end
154
- end
155
-
156
- def to_a
157
- dnode = @head
158
- array = Array.new
159
- while (dnode != nil)
160
- array << dnode.data
161
- dnode = dnode.forward
162
- end
163
- array
164
- end
165
-
166
- def to_s
167
- dnode = @head
168
- string = String.new(@head.data.to_s)
169
- dnode = dnode.forward
170
- while (dnode != nil)
171
- string << ", " << dnode.data.to_s
172
- dnode = dnode.forward
173
- end
174
- string
175
- end
176
-
177
- def find(data)
178
- dnode = @head
179
- while (dnode != nil && dnode.data != data )
180
- dnode = dnode.forward
181
- end
182
- dnode
183
- end
184
-
185
- def delete(data)
144
+ def delete(data) # deletes a node
186
145
  dnode = find(data)
187
- if dnode
188
- dnode1 = dnode.backward
189
- dnode2 = dnode.forward
190
- dnode1.forward = dnode2
191
- dnode2.backward = dnode1
146
+ if dnode === @head
147
+ @head = dnode.forward
148
+ elsif dnode.forward == nil
149
+ prev_dnode = dnode.backward
150
+ prev_dnode.forward = nil
151
+ else
152
+ prev_dnode, next_dnode = dnode.backward, dnode.forward
153
+ prev_dnode.forward, next_dnode.backward = next_dnode, prev_dnode
192
154
  end
155
+ dnode = nil
193
156
  end
194
-
195
157
  end
196
158
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: linked_list_sourav
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sourav Moitra