キュー (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を愛用