コンテンツ
キューは動的データ構造であり、そこから「先着順」プロセスでデータにアクセスできます。スタックは動的データ構造で、そこから「後入れ先出し」プロセスでデータにアクセスできます。スタックを実装すると、最後に入力したアイテムだけが利用可能になります。その基礎となるデータ(最初に置いた項目)にアクセスしたい場合は、それをキューとして扱うことになります。これを行うには、セカンドヒープを実装する必要があります。
説明書
2つのスタックを使用してキューを実装するのは簡単です (Ablestock.com/AbleStock.com/Getty Images)-
テキストエディタで、使用するプログラミング言語で使用可能な手順と機能に従ってスタックを実装するためのコードを記述します。このStack_Entryスタックを呼び出します。 Stack_Entryにデータを入れます(多くのプログラミング言語はデータを追加するために "push"コマンドを使います)。たとえば、Stack_Entryで「push」コマンドを実行して、「A」、「B」、「C」の順にデータを入力します。 "A"は最初に入るもので、スタックの一番下にあります。この最初の項目にアクセスしたい場合は、データをキューとして扱います。
-
使用したいプログラミング言語で使用可能な手順と機能に従って、2番目のスタックを実装するためのコードを作成します。それをStackSafeと呼びます(多くのプログラミング言語はスタックからデータを削除するために "pop"コマンドを使います)。
-
Stack_Insertスタックから各項目を取り除き、それらをSleep Stackに配置します。一般的には、Stack_Input項目を削除してStackAidに配置します。次に、Stack_Inputが空かどうかを確認します。空でない場合は、Stack_Inputから次の項目を削除してSleep Stackに配置します。 Stack_Inputが空になるまで繰り返します。この例では、Stack_Inputから「C」を削除してStack_Aidに入れます。 InputPilotが空であることを確認してください。 Stack_Inputから "B"を削除してStack_Aidに設定します。 InputPilotが空であることを確認してください。 Stack_Inputから「A」を削除し、それをStack_Aidに設定します。 InputPilotが空であることを確認してください。
-
Stack_Pathスタックが空の場合、Stack_Input(この例では "A")ベースにあった項目は、Stack_Asideの一番上になります。 SleepSeatアイテムを削除すると、スタックがキューに変わりました。スタックの最初のアイテムは、最初に取り出されるアイテム(先入れ先出し、または先入れ先出し、先入れ先出し)です。
2つのスタックが1行に等しい
どうやって
- ほとんどのプログラミング言語には、ベクトル内のデータをあたかもキューまたはスタックであるかのように扱う関数があります。つまり、どちらの端からデータを入力しているかに関係なく、ベクトルの最後の位置と最初の位置の両方にアクセスできます。データがベクトル内にある場合は、キューやスタックとしてアクセスすることを心配する必要はありません。しかし、データが動的なヒープにあり、それをキューとして扱う場合は、2番目のスタックを実装する必要があります。
必要なもの
- テキストエディタ
- プログラミング言語用のコンパイラまたはインタプリタ