キュー (Queue) のデータ構造を利用する - C#

C#でキューのデータ構造を利用したデータ格納のコードを紹介します。

概要

C#でキューを利用する場合は、System.Collections 名前空間の Queue クラスを用います。

プログラム例

UI

下図のUIを作成します。テキストボックスとボタンを1つずつ配置します。

コード

下記のコードを記述します。
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace QueueDemo
{
  public partial class FormDemo1 : Form
  {
    public FormDemo1()
    {
      InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
      Queue queue = new Queue();

      queue.Enqueue("ペンギン");
      queue.Enqueue("くじら");
      queue.Enqueue("しろくま");
      queue.Enqueue("アヒル");
      queue.Enqueue("ヤンバルクイナ");

      string text;
      for (int i = 0; i < 5; i++) {
        text = (string)queue.Dequeue();
        textBox_Output.Text += text + "\r\n";
      }
    }
  }
}

解説

  Queue queue = new Queue();
により、Queue クラスのインスタンスを作成します。

  queue.Enqueue("ペンギン");
  queue.Enqueue("くじら");
  queue.Enqueue("しろくま");
  queue.Enqueue("アヒル");
  queue.Enqueue("ヤンバルクイナ");
により、キューにデータを挿入します。

  for (int i = 0; i < 5; i++) {
    text = (string)queue.Dequeue();
    textBox_Output.Text += text + "\r\n";
  }
上記コードで、キューからデータをポップし、取得したデータをテキストボックスに表示します。

実行結果

プロジェクトを実行します。下図のウィンドウが表示されます。


[Button1]をクリックします。キューから取り出されたデータがテキストボックスに表示されます。キューに登録した順番(FIFO(First In, First Out, 先入れ先出し)でテキストボックスに値が表示されます。

補足

キューの内容すべてを出力するのであれば、下記コードがよりよいです。
private void button1_Click(object sender, EventArgs e)
{
  Queue queue = new Queue();

  queue.Enqueue("ペンギン");
  queue.Enqueue("くじら");
  queue.Enqueue("しろくま");
  queue.Enqueue("アヒル");
  queue.Enqueue("ヤンバルクイナ");

  string text;
  while (queue.Count > 0) {
    text = (string)queue.Dequeue();
    textBox_Output.Text += text + "\r\n";
  }
}
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
掲載日: 2014-09-05
iPentec all rights reserverd.