【Ruby】【アルゴリズム】Listクラスの自作
師匠にね、
検索だとか、いわゆるアルゴリズムが分からない人間は エンジニアとしてどこにも居場所はないんやない?
みたいなことを言われたので、
改めて1からアルゴリズムの勉強を始めています。
泣く暇もない
分からないわけじゃないんだ!
知らないだけなんだ!
頑張れ自分!
この本で勉強中↓
- 作者: 紀平拓男,春日伸弥
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2011/03/30
- メディア: 単行本
- 購入: 15人 クリック: 255回
- この商品を含むブログ (30件) を見る
「データ構造」という章を読んで、
Rubyってリスト構造のクラスが存在しないんだ!
ということに今さら気がつきました。
ということで自作しました。
class List include Enumerable attr_accessor :car, :cdr def initialize (car, cdr = nil) @car = car @cdr = cdr end def add (obj) a = self a = a.cdr until a.cdr.nil? tmp = List.new(obj) a.cdr = tmp end def insert(idx, obj) i = 0 a = self while i < idx - 1 a = a.cdr i += 1 end a.cdr = List.new(obj, a.cdr) end def length inject(0){|int, _| int + 1} end def each a = self begin yield a.car end while a = a.cdr end end list = List.new("a") list.add("b") list.add("c") list.add("d") list.insert(1,"x") p list.length list.each{|obj| p obj }
■実行結果
5 "a" "x" "b" "c" "d"
だんだんプログラミング書くスピードが速くなってきた。
ううう(泣いてる)