Stackは、LIFO(後入れ先出し)の原則に従う線形データ構造です。つまり、オブジェクトは、トップとも呼ばれるその一端でのみ挿入または削除できます。

Stackは次の操作をサポートします。

  • push Stackの一番上(つまり、現在の一番上の要素の上)にアイテムを挿入します。
  • pop Stackの最上位にあるオブジェクトを削除し、そのオブジェクトを関数から返します。Stackサイズは1つ減ります。

    Data stack
  • isEmpty Stackが空かどうかをテストします。
  • isFull Stackがいっぱいかどうかをテストします。
  • peek Stackからオブジェクトを削除したり、Stackを変更したりせずに、Stackの最上位にあるオブジェクトを返します。
  • size Stackに存在する要素の総数を返します。

Practice this problem

アレイを使用したStackの実装

Stackは、アレイとして簡単に実装できます。以下は、アレイを使用したJavaでのStack実装です。

ダウンロード  コードを実行する


Output:
 
Inserting 1
Inserting 2
Removing 2
Removing 1
Inserting 3
The top element is 3
The stack size is 1
Removing 3
The stack is empty

 
の時間計算量 push(), pop(), peek(), isEmpty(), isFull()size() 一定です、すなわち、 O(1).

Javaコレクションの使用

Stackも含まれています Javaのコレクション フレームワーク。

ダウンロード  コードを実行する


Output:
 
The top element is D
The stack size is 2
The stack is not empty

 
こちらも参照:

CでのStack実装

C++でのStack実装

PythonでのStack実装

リンクリストを使用したStackの実装– C、Java、およびPython