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.
- checksums.yaml +7 -0
- data/lib/node-list.rb +52 -0
- data/lib/node-list/node.rb +8 -0
- metadata +44 -0
checksums.yaml
ADDED
@@ -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
|
data/lib/node-list.rb
ADDED
@@ -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
|
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: []
|