linked_list_sourav 0.0.2 → 0.0.3

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