2010年2月26日金曜日

System.Collections.Generic Name SpaceのStack Classをインスタンス化してそのMemberを利用し、Stackを操作したりデータ構造を確認したりしてみる。

using System;
using System.Collections.Generic;

class SampleClass
{
    public void printOut(Stack<int> stack)
    {
        foreach (var n in stack)
        {
            Console.Write("{0} ", n);
        }

        Console.WriteLine();
    }
}

class MainClass
{
    static void Main()
    {
        var stack = new Stack<int>();

        for (int i = 0; i < 10; i++)
        {
            stack.Push(i + 1);
        }

        SampleClass sample = new SampleClass();

        /* Stack Classは後入れ先出し(LIFO
         * (Last In First Out))であることを
         * 確認 
         * 表示:10 9 8 7 6 5 4 3 2 1 */
        sample.printOut(stack);

        /* 5,50を含むか確認
         * 表示
         * True
         * False */
        Console.WriteLine("{0}¥n{1}",
            stack.Contains(5),
            stack.Contains(50));

        // 要素数を表示:10
        Console.WriteLine(stack.Count);

        // 先頭の要素を表示:10
        Console.WriteLine(stack.Peek());

        /* 先頭の要素を表示して削除
         * 10
         * 9 8 7 6 5 4 3 2 1 */
        Console.WriteLine(stack.Pop());
        sample.printOut(stack);
        
        // StackをArrayに変換
        var array= stack.ToArray();

        /* indexで参照できることを確認
         * 表示:4 3 */
        Console.Write("{0} {1}",
            array[5],array[6]);
    }
}

0 コメント:

コメントを投稿