[分享] 第一篇含有程式碼的文章 -- 堆疊
要是感覺看得很辛苦可以到
http://www.wretch.cc/blog/cfcef&article_id=5631452
觀看線上版
XD
class Stack
def initialize ary=0, max=0, lvl=0
@ary = ary
@max = max
@lvl = lvl
end
def add
if @lvl < @max
puts "Please input a value for add to the stack!"
@ary[@lvl] = self.get_value
@lvl+=1
puts "Now you have #{@lvl} elements for the array!"
else
puts "Stack is full!"
end
end
def del
puts "#{@ary[@lvl-1]} has been removed!"
@lvl -= 1
if @lvl <= 0
puts "You have no element in the array!"
else
puts "Now you have #{@lvl} elements in the array!"
end
end
def get_value
return gets.chomp
end
def list
if @lvl <= 0
puts "You have no element in the array!"
else
for ele in 0 ... @lvl
puts @ary[ele]
end
end
true
end
public :initialize, :add, :del, :list
protected :get_value
end
puts "Please input a number for the stack max!"
ary = {}
max = gets.chomp.to_i
lvl = 0
stack = Stack.new(ary, max, lvl)
=begin
Actions:
1. add -- for add elements
2. del -- for remove elements
3. list -- for list elements
4. exit -- end this program
=end
while true
puts "Please select a action!"
puts <<EOF
Actions:
1. add -- for add elements
2. del -- for remove elements
3. list -- for list elements
4. exit -- end this program
EOF
action = gets.chomp
case action
when "add" ,"1"
puts "Adding array element!"
stack.add
when "del", "2"
puts "Removing array element!"
stack.del
when "list", "3"
puts "Listing array elements!"
stack.list
when "exit", "4"
puts "Bye~ bye!"
exit
end
end
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 211.74.252.74
Ruby 近期熱門文章
PTT數位生活區 即時熱門文章