「アルゴリズムとデータ構造」のRuby版。
リストを使って入力したいくつかの数値とその合計を出力する。
# -*- coding: cp932 -*-
class TagListNode
attr_reader :data
attr_accessor :prev, :next
def initialize(data)
@data = data
@prev = nil
@next = nil
end
end
buf = nil
firstnode = nil
lastnode = nil
while buf != 0
printf("整数を入力してください(0を入力すると終了):")
buf = gets().to_i
if buf != 0
# 新しいノードを作成
newnode = TagListNode.new(buf)
newnode.next = nil
if lastnode != nil
# すでにあるリストの末尾に新しいノードをつなげる
lastnode.next = newnode
newnode.prev = lastnode
lastnode = newnode
else # これが最初の要素だった場合
firstnode = lastnode = newnode
newnode.prev = nil
end
end
end
# 合計値を算出
printf("--入力されたのは以下の数です--\n");
sum = 0
thisnode = firstnode
while thisnode != nil
printf("%d\t",thisnode.data)
sum += thisnode.data
thisnode = thisnode.next
end
printf("\n----\n以上の数の合計値は%dです。\n", sum)
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。