JavaScriptのキューデータ構造とは?FIFOの仕組みをわかりやすく解説
キュー(Queue)データ構造の基本
キュー(Queue)は、スタックと似た性質を持つ抽象的なデータ構造です。しかし、両者には重要な違いがあります。スタックが片側だけ開いているのに対し、キューは両端が開いた構造を持っている点です。
キューでは、一方の端から常にデータを挿入し(エンキュー:enqueue)、もう一方の端からデータを取り出します(デキュー:dequeue)。
先入れ先出し(FIFO)方式
キューは「First-In-First-Out(先入れ先出し)」という方式に従います。これは、最初に格納されたデータ項目ほど最初にアクセスされることを意味します。データの処理順序を厳密に保ちたい場面で、キューは非常に有効な選択肢となります。
身近な例え:一方通行の道路
キューを現実世界で例えるなら、「1車線の一方通行道路」が分かりやすいでしょう。この道路では、最初に進入した車両が最初に退出することになります。後から入った車は、前の車が出るまで待つ必要があります。これこそがFIFO方式そのものです。
キューの動作イメージ
以下の図は、キューがどのように動作するかを示したものです。データが一方向から入り、もう一方向から出ていく流れを確認できます。

-
【C言語入門】線形データ構造「キュー」の基本概念と実装方法をわかりやすく解説
データ構造とは、データを体系的に整理して格納するための仕組みのことです。データ構造は大きく分けて以下の2種類に分類されます。線形データ構造 − データが一列に直線状に並んで格納される構造です。例:配列、構造体、スタック、キュー、連結リストなど。非線形データ構造 − データが階層的・網羅的に格納される構造です。例:木(ツリー)、グラフ、集合、テーブルなど。キュー(Queue)とはキューは線形データ構造の一つで、要素の挿入は後端(リア/rear)から行い、削除は前端(フロント/front)から行うという特徴を持っています。キューではFIFO(First In First Out:先入れ先出し)とい
-
ハーフエッジデータ構造(HalfedgeDS)とは?基本概念とCGAL実装例をわかりやすく解説
はじめにテンプレートパラメータとして用いられるハーフエッジデータ構造(Halfedge Data Structure、略称 HalfedgeDS)は、頂点・辺・面の接続情報(インシデンス情報)を管理できる、辺を中心としたデータ構造として定義されています。平面地図(planar map)や多面体など、任意の次元空間に埋め込まれた向き付け可能な2次元曲面の表現に適した構造です。このデータ構造では、各辺が逆向きの向きを持つ2つのハーフエッジ(半辺)に分割されます。各ハーフエッジは、隣接する1つの面と1つの頂点への参照を保持し、逆に各面および各頂点にも、それぞれ1つの接続ハーフエッジが格納されます。さ