lifo_stack 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/stack.rb +55 -0
  3. metadata +43 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: ca7714e63c4ae4293098cca6fe446c45a1097ad1b46883bd279a2b98a8a82862
4
+ data.tar.gz: 740509ae55287892576a5a6ee210cdfae05fe831bd5ffffc6e02b6bce4b6ce3f
5
+ SHA512:
6
+ metadata.gz: '09944ff572fc07c751ba2d666865f594c54128bdcc8b87ea15e5521157c6843c1eaa0d9a35505b485de4ca0912e9a5e08a44c80a154f8f075072c45dcbd76a57'
7
+ data.tar.gz: 7c926ba84b30eeb2ecc9621d7ba5d971213b6c8bc84371cff81ad45c0e8e63f0870f00c2b147b71286b0e8d95a515d594827b7790721ffde4802b72bdcf1f239
@@ -0,0 +1,55 @@
1
+ class LifoStack
2
+ class Node
3
+ # attr_reader :element, :node
4
+ attr_accessor :element, :node
5
+
6
+ def initialize(element, node)
7
+ self.element = element
8
+ self.node = node
9
+ end
10
+ end
11
+
12
+ def push(element)
13
+ @top = Node.new(element, @top)
14
+ end
15
+
16
+ def peek
17
+ if @top == 0
18
+ puts "Peek is empty"
19
+ else
20
+ puts @top
21
+ end
22
+ end
23
+
24
+ def clear
25
+ while self.peek
26
+ pop
27
+ end
28
+ end
29
+
30
+ def full
31
+ if @top
32
+ puts "Stack is full"
33
+ else
34
+ puts "Stack is empty"
35
+ end
36
+ end
37
+
38
+ def empty
39
+ if @top.nil?
40
+ puts "Stack is empty"
41
+ else
42
+ puts "Stack is full"
43
+ end
44
+ end
45
+
46
+ def pop
47
+ if not @top
48
+ return nil
49
+ else
50
+ tmp = @top
51
+ @top = @top.node
52
+ tmp.element
53
+ end
54
+ end
55
+ end
metadata ADDED
@@ -0,0 +1,43 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: lifo_stack
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Ryan Febriansyah
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2021-01-19 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: A simple LIFO stack program
14
+ email: ryanfebriansyah72@gmail.com
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/stack.rb
20
+ homepage: https://follow-ryan.xyz
21
+ licenses:
22
+ - MIT
23
+ metadata: {}
24
+ post_install_message:
25
+ rdoc_options: []
26
+ require_paths:
27
+ - lib
28
+ required_ruby_version: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ required_rubygems_version: !ruby/object:Gem::Requirement
34
+ requirements:
35
+ - - ">="
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ requirements: []
39
+ rubygems_version: 3.1.4
40
+ signing_key:
41
+ specification_version: 4
42
+ summary: LIFO Stack
43
+ test_files: []