-1

SスタックとキューQを 1 つの配列にマッピングするデータ表現を設計しますM。これら 2 つのデータ オブジェクトの要素を追加および削除するアルゴリズムを記述します。

はいを明確にすることは宿題です!

私は答えを求めているわけではありません.答えを導くことができるリンクまたは何かが必要なだけです.

4

2 に答える 2

1

まず、スタックとキューが何であるかを理解する必要があります。これら 2 つのデータ構造には、通常の動作 (または操作上の制限) があります。

データをチューブに入れたいとします。キュー Q は、片側にデータを入れ、反対側にデータをポップするチューブです。一方、スタック S は、同じ側にデータを配置およびポップするチューブであり、反対側には決してアクセスできません。

要件として、与えられた配列 M は、データを配置する生のチューブです。必要なことは、このチューブにいくつかの操作上の制限を追加することです。

キュー Q とスタック S の両方で、最初のデータを配列 [0] に配置し、2 番目のデータを配列 [1] に配置した前のデータに続き、3 番目のデータを配列 [2] に配置する、などです。新しいデータは常に一方の側 (配列の「末尾」など) に配置します。キュー Q では、データを入れる側とは異なるデータをポップする必要があるため、最初に配列 [0] でデータをポップし、次に配列 [1] でデータをポップします。つまり、データを保持する場所で、配列の最小インデックスを持ちます。 . スタック S の場合、データを入れたのと同じ側にデータをポップする必要があるため、最初にデータを「テール」でポップします。つまり、場所はデータを保持し、配列の最大のインデックスを持ちます。

配列のサイズは固定されているため、データが配列の端に達したときは注意してください。幸運を。^_^

于 2012-05-16T13:37:27.337 に答える
1

この非常に簡単なガイドは、スタックとキューの違いを示しています: http://blog.bakhshi.eu/2005/11/stack-vs-queue.html

基本的に、スタックとキューの両方のデータを配列に格納できます。違いは、新しい要素をどこから取り出すかです。スタックの場合、取り出した次の要素 (「ポップ」) は、最後に挿入した要素です。キューの場合、取り出した次の要素は、最初に挿入した要素です。

1 つの方法は、配列のメンバー変数を持ち、いくつかのメソッドを持つクラスを作成することです。

addToQueueOrStack()
popFromQueue()
popFromStack()
于 2012-05-16T12:51:59.623 に答える