linked_list_sourav 0.0.2 → 0.0.3

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 (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/linked_list.rb +69 -54
  3. metadata +1 -2
  4. data/lib/node.rb +0 -24
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 173f30574433c08a8dfbab1f4118cd78826830d0
4
- data.tar.gz: 95bbb800fe469579efb56f0abb8fb837ffbec7d9
3
+ metadata.gz: 5460857f08a6425d9f801fbfc82e1ae19a5ee042
4
+ data.tar.gz: 870c04620729d17bc79cb661923412bc6c814d44
5
5
  SHA512:
6
- metadata.gz: 6bc70d07aa80158e780f49bdc613d5ae0c74e2cc9a4e43e782064ead858d7087939a651c0ada84d8ada496dc543be8fcec70eb7ea06197d2928e4c1c66cfc385
7
- data.tar.gz: 624467a6d655e87959ff0de7f18ac4c6bc9ff927c1a5c295291230174244271fdca27ecf074ce2008fd4ebc98a1ab4853a7708ddd68e20558906ae7d42142fdb
6
+ metadata.gz: 29a5f1a71b68edea60e257287e96c05acd102e799b0de8f406e2ebf2388636edd87267cea75a1662c0ece3f422ecce0edd8c8cf2b52bc0b39929d8c31fb10228
7
+ data.tar.gz: a703506758a24b32f78a370bb9902756384f7c22c132ac64b8b88079d47a9906b4283bd63101efa7924ab7ae51a854ba9fe9a8b300785c06a0b4d296c941f629
data/lib/linked_list.rb CHANGED
@@ -1,73 +1,88 @@
1
- require_relative 'node'
1
+ module LinkedList
2
2
 
3
- class LinkedList
4
- def initialize(data) # constructor
5
- if data.class == Array
6
- @head = Node.new(data[0])
7
- data.each.with_index { |datum, index| self.add(datum) if index > 0}
8
- else
9
- @head = Node.new(data[0])
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
5
+
6
+ def initialize(data, pointer = nil) #intializes when new is invoked
7
+ @data = data
8
+ @pointer = pointer
10
9
  end
11
- self
12
- end
13
10
 
14
- def head #returns head
15
- @head
11
+ def to_s
12
+ puts "Data: #{data} Points to: #{self.pointer.data}"
13
+ end
16
14
  end
17
15
 
18
- def parse # parses all the members
19
- node = @head
20
- while (node != nil)
21
- puts node.get_data
22
- node = node.get_pointer
16
+ class SinglyLinkedList
17
+ def initialize(data) # constructor
18
+ if data.class == Array
19
+ @head = Node.new(data[0])
20
+ data.each.with_index { |datum, index| self.add(datum) if index > 0}
21
+ else
22
+ @head = Node.new(data[0])
23
+ end
24
+ self
23
25
  end
24
- end
25
26
 
26
- def add(data) # adds new members
27
- node = @head
28
- while (node.get_pointer != nil)
29
- node = node.get_pointer
27
+ def head #returns head
28
+ @head
30
29
  end
31
- node.set_pointer(Node.new(data, nil))
32
- self
33
- end
34
30
 
35
- def to_a # returns an array of all data
36
- node = @head
37
- array = Array.new
38
- while (node != nil)
39
- array << node.get_data
40
- node = node.get_pointer
31
+ def parse # parses all the members
32
+ node = @head
33
+ while (node != nil)
34
+ puts node.data
35
+ node = node.pointer
36
+ end
41
37
  end
42
- array
43
- end
44
38
 
45
- def to_s # returns all data in form of string
46
- node = @head
47
- string = String.new
48
- while (node != nil)
49
- string << ", " << node.get_data.to_s
50
- node = node.get_pointer
39
+ def add(data) # adds new members
40
+ node = @head
41
+ while (node.pointer != nil)
42
+ node = node.pointer
43
+ end
44
+ node.pointer = Node.new(data)
45
+ self
51
46
  end
52
- string
53
- end
54
47
 
55
- def delete(data) # deletes a single member
56
- node = @head
57
- deleted_node = ''
58
- if node.get_data === data
59
- @head = node.get_pointer
60
- deleted_node = node
61
- else
48
+ def to_a # returns an array of all data
62
49
  node = @head
63
- while( node != nil && node.get_pointer != nil && (node.get_pointer).get_data != data)
64
- node = node.get_pointer
50
+ array = Array.new
51
+ while (node != nil)
52
+ array << node.data
53
+ node = node.pointer
65
54
  end
66
- if (node != nil) && (node.get_pointer != nil)
67
- node.set_pointer((node.get_pointer).get_pointer)
55
+ array
56
+ end
57
+
58
+ def to_s # returns all data in form of string
59
+ node = @head
60
+ string = String.new(@head.data.to_s)
61
+ node = node.pointer
62
+ while (node != nil)
63
+ string << ", " << node.data.to_s
64
+ node = node.pointer
65
+ end
66
+ string
67
+ end
68
+
69
+ def delete(data) # deletes a single member
70
+ node = @head
71
+ deleted_node = ''
72
+ if node.data === data
73
+ @head = node.pointer
74
+ deleted_node = node
75
+ else
76
+ node = @head
77
+ while( node != nil && node.pointer != nil && (node.pointer).data != data)
78
+ node = node.pointer
79
+ end
80
+ if (node != nil) && (node.pointer != nil)
81
+ node.pointer = (node.pointer).pointer
82
+ end
83
+ deleted_node = node.pointer
68
84
  end
69
- deleted_node = node.get_pointer
85
+ deleted_node = nil
70
86
  end
71
- deleted_node = nil
72
87
  end
73
88
  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.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sourav Moitra
@@ -17,7 +17,6 @@ extensions: []
17
17
  extra_rdoc_files: []
18
18
  files:
19
19
  - lib/linked_list.rb
20
- - lib/node.rb
21
20
  homepage: https://github.com/xw19/linked_list
22
21
  licenses:
23
22
  - MIT
data/lib/node.rb DELETED
@@ -1,24 +0,0 @@
1
- class Node # this class defines one node the basic building blog of linked list
2
- attr_accessor :data, :pointer # data for holding data and pointers refers to next node
3
-
4
- def initialize(data, pointer = nil) #intializes when new is invoked
5
- @data = data
6
- @pointer = pointer
7
- end
8
-
9
- def get_pointer # returns next node
10
- @pointer
11
- end
12
-
13
- def set_pointer(pointer) #sets next node
14
- @pointer = pointer
15
- end
16
-
17
- def set_data data # sets data
18
- @data = data
19
- end
20
-
21
- def get_data # returns data
22
- @data
23
- end
24
- end