2009年12月10日木曜日

Queueクラス(先入れ先出し)を定義し、Enqueue,Dequeue,Peekメソッドを使用し要素を追加したり、削除したりしてみる。
using System;
using System.Collections.Generic;

class MainClass
{
    static void Main()
    {
        // Queue(先入れ先出し)を作成
        var q = new Queue<int>();

        // 要素を追加
        int i = 1;
        while (i < 6)
        {
            q.Enqueue(i++);
        }
        // qを出力
        // 出力値:1 2 3 4 5
        foreach (int n in q)
        {
            Console.Write(n + " ");
        }
        // 改行
        Console.WriteLine("");

        // 先頭の要素を取得、出力して削除
        // 出力値:1 2
        Console.Write(q.Dequeue());
        Console.Write(" ");
        Console.WriteLine(q.Dequeue());

        // 削除されていることを確認
        // 出力値:3 4 5
        foreach (var n in q)
        {
            Console.Write(n + " ");
        }
        Console.WriteLine("");

        // 先頭の要素を取得して出力
        // 出力値:3
        Console.WriteLine(q.Peek());

        // 削除されていないことを確認
        // 出力値:3 4 5
        foreach (var n in q)
        {
            Console.Write(n + " ");
        }
        Console.WriteLine("");
      
        // 最初の状態に戻す
        // すべて削除
        q.Clear();
        i = 1;
        while (i < 6)
        {
            q.Enqueue(i++);
        }
        // 出力値:1 2 3 4 5
        foreach (var n in q)
        {
            Console.Write(n + " ");
        }
        Console.WriteLine("");
    }
}

0 コメント:

コメントを投稿