ホームページ > バックエンド開発 > Python チュートリアル > キューとスタックは Python でどのように実装されますか?

キューとスタックは Python でどのように実装されますか?

WBOY
リリース: 2023-10-20 08:13:07
オリジナル
915 人が閲覧しました

キューとスタックは Python でどのように実装されますか?

キューとスタックは Python でどのように実装されますか?

Python プログラミングでは、キューとスタックが頻繁に使用されるデータ構造です。キューとスタックには独自の特性と用途があり、Python にはそれらを実装するための組み込みデータ構造とメソッドがいくつか用意されています。

キューは先入れ先出し (FIFO) データ構造です。つまり、最初にキューに入った要素が最初に取り出されます。キューを実装するために、キュー モジュールが Python で提供されます。以下は、キュー モジュールを使用してキューを実装するサンプル コードです。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

import queue

 

# 创建一个队列对象

my_queue = queue.Queue()

 

# 入队操作

my_queue.put(1)

my_queue.put(2)

my_queue.put(3)

 

# 查看队列长度

print(my_queue.qsize())  # 输出3

 

# 出队操作

while not my_queue.empty():

    item = my_queue.get()

    print(item)  # 依次输出1、2、3

ログイン後にコピー

コードでは、最初に queue モジュールをインポートし、次にキュー オブジェクト my_queue を作成しました。 。次に、put メソッドを使用してキューに登録します (サンプルコードでは、1、2、3 の 3 つの要素がそれぞれキューに登録されます)。 qsizeこのメソッドは、キューの長さを返すために使用されます。最後に、while ループと empty メソッドを組み合わせて使用​​し、キューが空になるまでキューをデキューします。

スタックは後入れ先出し (LIFO) データ構造です。つまり、スタックにプッシュされた最後の要素が最初にポップアウトされます。 Python では、リストを使用してスタックを実装できます。以下は、リストを使用してスタックを実装するサンプル コードです。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

# 创建一个空列表作为栈

my_stack = []

 

# 压栈操作

my_stack.append(1)

my_stack.append(2)

my_stack.append(3)

 

# 查看栈长度

print(len(my_stack))  # 输出3

 

# 弹栈操作

while my_stack:

    item = my_stack.pop()

    print(item)  # 依次输出3、2、1

ログイン後にコピー

コードでは、最初にスタックのデータ構造として空のリスト my_stack を作成します。次に、append メソッドを使用してスタックをプッシュします。サンプル コードでは、3 つの要素 1、2、3 が順番にスタックにプッシュされます。 len 関数を使用してスタックの長さを取得します。最後に、while ループと pop メソッドを組み合わせて使用​​し、スタックが空になるまでスタックをポップします。

Python のリストは実際には、キュー操作とスタック操作の両方をサポートする動的配列であることに注意してください。リストを使用してスタックを実装する場合は、スタックのプッシュおよびポップに append および pop メソッドを使用する方が効率的であるため、使用することをお勧めします。

要約すると、Python のキューとスタックは、キュー モジュールとリストを通じて実装できます。キューは先入れ先出しの原則を使用しますが、スタックは後入れ先出しの原則を使用します。キューとスタックの実装方法をマスターすると、特定の問題を解決するのに非常に役立ちます。

以上がキューとスタックは Python でどのように実装されますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート