Number / 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
シーケンスの実装だが詳細はそれぞれ別(Cは単方向リスト)
$ ./test size : 4 element (0) = apple element (1) = bean element (2) = candy element (3) = doughnut $
#include <stdio.h> #include <stdlib.h> #include <string.h> /* 単方向リスト実装 */ typedef struct st_unlist { struct st_unlist * node; char * value; } * List; /* ノードを動的に確保 */ List list_init() { List list; list = (List)malloc(sizeof(struct st_unlist)); list->node = NULL; list->value = NULL; return list; } /* 値を追加 */ void list_add(List list, char * value) { if (list == NULL) { list = list_init(); } if (list->value == NULL) { list->value = (char *)malloc(strlen(value)+1); if (list->value == NULL) { printf("malloc failed.\n"); } else { sprintf(list->value, "%s", value); } return; } else { if (list->node == NULL) { list->node = list_init(); } list_add(list->node, value); } } /* 値を取得 */ char * list_get(List list, int index) { List lp = list; int i; for (i = 0; i < index; i++) { if (lp == NULL || lp->value == NULL) break; lp = lp->node; } if (lp->value == NULL) { return "(not found)"; } return lp->value; } /* サイズを取得 */ int list_size(List list) { List lp = list; int i; for (i = 1; ; i++) { if (lp->node == NULL || lp->value == NULL) break; lp = lp->node; } return i; } /* 実行 */ int main() { List list; int i; list = list_init(); list_add(list, "apple"); list_add(list, "bean"); list_add(list, "candy"); list_add(list, "doughnut"); printf("size : %d\n", list_size(list)); for (i = 0; i < list_size(list); i++) { printf("element (%d) = %s\n", i, list_get(list, i)); } return 0; }
#include <iostream> #include <string> #include <vector> int main() { std::vector<std::string> list; list.push_back("apple"); list.push_back("bean"); list.push_back("candy"); list.push_back("doughnut"); std::cout << "size : " << list.size() << std::endl; for (unsigned int i = 0; i < list.size(); i++) { std::cout << "element (" << i << ") = " << list[i] << std::endl; } return 0; }
import java.util.*; class Main { public static void main(String[] args) { List list = new ArrayList(); list.add("apple"); list.add("bean"); list.add("candy"); list.add("doughnut"); System.out.println("size : " + list.size()); for (int i = 0; i < list.size(); i++) { System.out.println("element (" + i + ") = " + list.get(i)); } } }
my @list = (); push @list, "apple"; push @list, "bean"; push @list, "candy"; push @list, "doughnut"; printf"size : %d\n", scalar @list; for (my $i = 0; $i < @list; ++$i) { printf"element (%d) = %s\n", $i, $list[$i]; }
list = Array.new list << "apple" list << "bean" list << "candy" list << "doughnut" puts "size : #{ list.length }" i = 0 list.each do |s| puts "element (#{i}) = " + s i += 1 end
最終更新日 : 2004.08.23
Number / 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
copyright 2000-2005
ARGIUS project