見出し画像

Pythonでキューを実装しよう!

キューは、FIFO(First In, First Out)方式でデータを管理するデータ構造です。プログラミングにおいて、キューは非常に基本的なデータ構造であり、タスクのスケジューリングやリソース管理などでよく使われます。この記事では、Pythonを使ってキューをゼロから実装し、その使い方や応用例を紹介します。

1. キューの基本操作

キューには次の基本操作があります

  1. enqueue: 要素を追加する。

  2. dequeue: 最初に追加した要素を取り出す。

  3. isEmpty: キューが空かどうかを確認する。

2. キューの実装

Pythonでは、collectionsモジュールのdequeを用いてキューを簡単に実装できます。queue.pyというファイルにプログラムを書きましょう。

from collections import deque

class Queue:
    def __init__(self):
        self.items = deque()

    def enqueue(self, element):
        self.items.append(element)

    def dequeue(self):
        if not self.is_empty():
            return self.items.popleft()
        else:
            raise IndexError("dequeue from empty queue")

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

3. キューの使い方

キューを使って、複数のタスクを順番に処理するプログラムを書いてみましょう。run.pyというファイルにプログラムを保存します。

from queue import Queue

def process_tasks(tasks):
    queue = Queue()

    # タスクをキューに追加する
    for task in tasks:
        queue.enqueue(task)

    # キューが空になるまでタスクを処理する
    while not queue.is_empty():
        current_task = queue.dequeue()
        print(f"Processing task: {current_task}")
        # ここでタスクの処理を行う

if __name__ == "__main__":
    tasks = ["Task 1", "Task 2", "Task 3"]
    process_tasks(tasks)

4. 実行する

Pythonの環境構築は、こちらを確認してください。

下記のコマンドで、プログラムを実行します

python run.py

以下のように表示されれば成功です

Processing task: Task 1
Processing task: Task 2
Processing task: Task 3

まとめ

キューはシンプルですが、タスクのスケジューリングやリソース管理など多くの場面で使われます。Pythonを使えば、簡単に実装して応用できます。ぜひ試してみてください!

いいなと思ったら応援しよう!