node-list 0.0.0

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 0672d4a93df04f59b694752ec4f313bd2c3d2201775c708b9ca306eca2b7cbd8
4
+ data.tar.gz: 61d9efea1239818ca45cf775980663bee3dace08fb7b20c0222ed7e25c6ade4f
5
+ SHA512:
6
+ metadata.gz: 3a3d0b14e62a9bf53a533ad1ec38f9e8ef2bc7c3dbce62d8a5678af71621f37b4bbc7a023091598e0eda637d58dfcce780001782e314267e1818a615b073f9cc
7
+ data.tar.gz: efd9f60b134e30384b6f05caf60aab5cf7e253c98dafcb8133a1efed0d71cc799c40da436691991cdb69ae52b88c814d594252f7bf049f12680c8ecdeda269ff
@@ -0,0 +1,52 @@
1
+ require 'node-list/node'
2
+
3
+ class NodeList < Node
4
+ attr_accessor :head
5
+
6
+ def initialize(value)
7
+ @head = Node.new(value)
8
+ end
9
+
10
+ def append(value)
11
+ if @head.next.nil?
12
+ @head.next = Node.new(value)
13
+ else
14
+ pointer = @head
15
+ temp = pointer
16
+ until pointer.next.nil?
17
+ pointer = temp.next
18
+ temp = pointer
19
+ end
20
+ pointer.next = Node.new(value)
21
+ end
22
+ end
23
+
24
+ def get_node_with_val(value)
25
+ return @head if @head.value == value
26
+ pointer = @head.next
27
+ temp = pointer
28
+ loop do
29
+ return pointer if pointer.value == value
30
+ raise "No Node with the value: '#{value}' was found in this node list." if pointer.next.nil?
31
+ pointer = temp.next
32
+ temp = pointer
33
+ end
34
+ end
35
+
36
+ def delete_node_with_val(value)
37
+ return @head.value = @head.next if @head.value == value
38
+ previous = @head
39
+ pointer = @head.next
40
+ temp = pointer
41
+ loop do
42
+ raise "No node found with value #{value}." if pointer.nil?
43
+ if pointer.value == value
44
+ previous.next = temp.next
45
+ return @head
46
+ end
47
+ previous = pointer
48
+ pointer = temp.next
49
+ temp = pointer
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,8 @@
1
+ class Node
2
+ attr_accessor :value, :next
3
+
4
+ def initialize(value, nxt = nil)
5
+ @value = value
6
+ @next = nxt
7
+ end
8
+ end
metadata ADDED
@@ -0,0 +1,44 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: node-list
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Jack Corley
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-11-13 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: A linked node list implementation.
14
+ email: jdcorley@gmail.com
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/node-list.rb
20
+ - lib/node-list/node.rb
21
+ homepage: https://rubygems.org/gems/hola
22
+ licenses:
23
+ - MIT
24
+ metadata: {}
25
+ post_install_message:
26
+ rdoc_options: []
27
+ require_paths:
28
+ - lib
29
+ required_ruby_version: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ required_rubygems_version: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ">="
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ requirements: []
40
+ rubygems_version: 3.0.6
41
+ signing_key:
42
+ specification_version: 4
43
+ summary: Node List
44
+ test_files: []