1019494 ランダム
 ホーム | 日記 | プロフィール 【フォローする】 【ログイン】

モーヲタが二次元とか

モーヲタが二次元とか

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x

PR

サイド自由欄
















カレンダー

キーワードサーチ

▼キーワード検索

カテゴリ

プロフィール

d-sen

d-sen

バックナンバー

2024/11
2024/10
2024/09
2024/08
2024/07

フリーページ

楽天カード

お気に入りブログ

下関「和や」でビール ショテマエさん

楽天ブックス スタッ… 楽天ブックスブログ担当さん
時東ぁみOfficialBlo… 時東ぁみさん
THE ポッシボー THEポッシボーさん
真・声優さんメモリ… 咲良かすみさん
楽天VIDEO:アニメ会… 楽天VIDEOさん
とりあえず練習用の… バルディッシュさん
宮城県防災・危機管… 防災宮城さん
みかづき紅月の館 みかづき紅月さん
ユメのオワリ ユメのオワリさん
2010/02/10
XML
カテゴリ:Ruby


円環状のリストを書いてみた。が、使い道が思い浮かばない。


# Coding : Windows-31J
class RingList
attr_accessor :value

def initialize
@prev = self
@next = self
self
end

def add val
newN = RingList.new
newN.value = val
@next.prev newN
newN.next @next

@next = newN
newN.prev self
newN
end

def next nnode
@next = nnode
end
protected :next

def prev pnode
@prev = pnode
end
protected :prev

def remove
@prev.next @next
@next.prev @prev
nodes = @next

@prev = self
@next = self

nodes
end

def prev_node
@prev
end

def next_node
@next
end

def length
len = 0
current = self
begin
len += 1
current = current.next_node
end until (self.equal? current )
len
end

def to_array
arr = []
current = self
begin
arr << current.value
current = current.next_node
end until (self.equal? current )
arr
end

def ascending
current = self
begin
yield current.value
current = current.next_node
end until (self.equal? current )
end

def descending
current = self
begin
yield current.value
current = current.prev_node
end until (self.equal? current )
end
end


if __FILE__ == $0

berryz = RingList.new
berryz.value = 'キャプ'
berryz = berryz.add( 'もも' ).add( 'みや' ).add( 'りしゃこ' ).add( 'ちな' ).add( 'まーさ' ).add('从 ’w’) ')
p berryz.to_array

p berryz.length
berryz.descending do |value|
p value
end

berryz = berryz.remove
p berryz.to_array

0.upto 60 do |n|
p berryz.value
berryz = berryz.next_node
end

end





お気に入りの記事を「いいね!」で応援しよう

最終更新日  2010/02/11 12:11:15 AM
コメント(0) | コメントを書く



© Rakuten Group, Inc.
X