2つのスタックを使ってキューを実装する方法

著者: Laura McKinney
作成日: 4 4月 2021
更新日: 15 1月 2025
Anonim
2つのスタックを使用したキューの実装-データ構造
ビデオ: 2つのスタックを使用したキューの実装-データ構造

コンテンツ

キューは動的データ構造であり、そこから「先着順」プロセスでデータにアクセスできます。スタックは動的データ構造で、そこから「後入れ先出し」プロセスでデータにアクセスできます。スタックを実装すると、最後に入力したアイテムだけが利用可能になります。その基礎となるデータ(最初に置いた項目)にアクセスしたい場合は、それをキューとして扱うことになります。これを行うには、セカンドヒープを実装する必要があります。


説明書

2つのスタックを使用してキューを実装するのは簡単です (Ablestock.com/AbleStock.com/Getty Images)

    2つのスタックが1行に等しい

  1. テキストエディタで、使用するプログラミング言語で使用可能な手順と機能に従ってスタックを実装するためのコードを記述します。このStack_Entryスタックを呼び出します。 Stack_Entryにデータを入れます(多くのプログラミング言語はデータを追加するために "push"コマンドを使います)。たとえば、Stack_Entryで「push」コマンドを実行して、「A」、「B」、「C」の順にデータを入力します。 "A"は最初に入るもので、スタックの一番下にあります。この最初の項目にアクセスしたい場合は、データをキューとして扱います。

  2. 使用したいプログラミング言語で使用可能な手順と機能に従って、2番目のスタックを実装するためのコードを作成します。それをStackSafeと呼びます(多くのプログラミング言語はスタックからデータを削除するために "pop"コマンドを使います)。

  3. 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が空であることを確認してください。


  4. Stack_Pathスタックが空の場合、Stack_Input(この例では "A")ベースにあった項目は、Stack_Asideの一番上になります。 SleepSeatアイテムを削除すると、スタックがキューに変わりました。スタックの最初のアイテムは、最初に取り出されるアイテム(先入れ先出し、または先入れ先出し、先入れ先出し)です。

どうやって

  • ほとんどのプログラミング言語には、ベクトル内のデータをあたかもキューまたはスタックであるかのように扱う関数があります。つまり、どちらの端からデータを入力しているかに関係なく、ベクトルの最後の位置と最初の位置の両方にアクセスできます。データがベクトル内にある場合は、キューやスタックとしてアクセスすることを心配する必要はありません。しかし、データが動的なヒープにあり、それをキューとして扱う場合は、2番目のスタックを実装する必要があります。

必要なもの

  • テキストエディタ
  • プログラミング言語用のコンパイラまたはインタプリタ

古代ギリシャの歴史は、男性によってほとんど独占的に記録されていました - 知的、哲学的、そして特に裕福です。古代ギリシャは、アテネとスパルタの州に分けられたとき、女性のために2つの全く異なる世界を支持しました。スパルタの女性には多くの権力が与えられていましたが、アテネではほとんど権利がありませんでした。 スパルタの女性には多くの権力が与えられましたが、アテネではほとんど権利がありませんでした (P...

顔の渋滞は、感染症、副鼻腔の症状、またはアレルギーによって引き起こされる可能性があります。鼻の内側の血管が腫れていると、鼻が詰まり、呼吸困難になることがあります。顔の渋滞は、耳を詰まらせる可能性があり、それが難聴や音のこもりの原因となる可能性があります。あなたはまたあなたの味覚芽を失うかもしれません。ただし、抗生物質を使用せずにこの渋滞を緩和するために実行できるいくつかの手順があります。 あなたの...

シェア