スタック
Last In First Outのデータ構造。
データを取り出すと最後に追加したデータが取り出されます。
class Stack def initialize(size) @max = size @ptr = 0 @data = Array.new(size) end def push(obj) if @ptr < @max @data[@ptr] = obj @ptr += 1 end end def pop return nil if @ptr <= 0 @ptr -= 1 obj = @data[@ptr] @data[@ptr] = nil return obj end def clear (@ptr - 1).step(0, -1){|i| @data[i] = nil } @ptr = 0 end def isEmpty? @ptr == 0 end def isFull? @ptr == @max end # def peek # end def size @ptr end def getData @data end end
知識確認(out)→参考書確認(in)→実装(out)→バグ取りで1時間くらい。
実装そのものは15分くらい。