メインコンテンツへスキップ
Z

Stack vs Queue

Stack vs queue compared — LIFO vs FIFO, operations and use cases, with interactive visualizers for both.

A stack is last-in, first-out (LIFO); a queue is first-in, first-out (FIFO). Both add and remove in O(1) — the difference is which end you take from.

Stack vs Queue at a glance

Stack Queue
Order LIFO FIFO
Add / remove Same end (top) Opposite ends
Used in Undo, recursion, DFS Scheduling, buffering, BFS
Complexity O(1) O(1)

When to use Stack

Use a stack when the most recent item should be handled first — undo, call stacks, DFS.

When to use Queue

Use a queue when items should be handled in arrival order — task scheduling, BFS, buffers.

Tools for Stack & Queue

Stack vs Queue

ハッシュテーブルとは何ですか?

ハッシュテーブルは、複数のバケットを持つ配列にkey/valueのペアを格納するデータ構造です。ハッシュ関数を使って各keyに対応するバケットのインデックスを計算するため、insert・search・deleteの各操作をほぼ一定時間で行えます。

ハッシュ衝突(hash collision)とは何ですか?

異なる2つのkeyが同じバケットにハッシュ化されてしまう現象です。このツールではseparate chainingという方式で衝突を処理しており、各バケットはエントリの連結リスト(linked list)を保持します。

ハッシュテーブル操作の時間計算量はどのくらいですか?

insert・search・deleteはいずれも平均O(1)です。最悪の場合は、多くのkeyが1つのバケットに集中して衝突するため、O(n)になります。

このツールではどのハッシュ関数を使っていますか?

index = value % 7というシンプルな剰余(モジュロ)演算のハッシュ関数を使っており、バケットの動きを追いやすくしています。実際のハッシュテーブルでは、より強力なハッシュ関数を使い、チェーンが長くなりすぎないよう自動的にリサイズを行います。