Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 

README.md

スタックは、データ構造の一種で、LIFO (Last In, First Out) の特性を持っています。これは、「最後に入れた要素が最初に取り出される」という仕組みです。


スタックの基本的な操作

  1. プッシュ(Push)
    新しい要素をスタックに追加する操作。

  2. ポップ(Pop)
    スタックの一番上にある要素を取り出し、削除する操作。

  3. ピーク(Peek/Top)
    スタックの一番上の要素を取得するが、削除はしない。

  4. 空確認(IsEmpty)
    スタックが空であるかどうかを確認する。


スタックの使用例

  • 関数呼び出しの管理
    プログラムでは関数呼び出しがスタック構造を利用して管理される。

  • ブラウザの戻る機能
    ページ遷移の履歴をスタックに保持しておき、戻る操作を可能にする。

  • 式の評価と逆ポーランド記法
    算術式の計算や逆ポーランド記法(RPN)の処理。


実装例 (Python)

Pythonでスタックを実装する簡単な方法は、リストを使用することです。

class Stack:
    def __init__(self):
        self.stack = []

    def push(self, item):
        self.stack.append(item)

    def pop(self):
        if not self.is_empty():
            return self.stack.pop()
        else:
            raise IndexError("Stack is empty")

    def peek(self):
        if not self.is_empty():
            return self.stack[-1]
        else:
            raise IndexError("Stack is empty")

    def is_empty(self):
        return len(self.stack) == 0

# 使用例
stack = Stack()
stack.push(10)
stack.push(20)
print(stack.peek())  # 20
print(stack.pop())   # 20
print(stack.is_empty())  # False