2

私はここ数日、最近の課題について質問を見つけようとしていますが、頭を抱えているようには見えません。質問は次のようになります。

2つのフィールドnoOfPrioritiesとLinkedListを含むPriorityQueueクラスを作成します…int値を受け取る1つのコンストラクターがその値をnoOfPrioritiesに割り当てます…同時にnumberOfPrioritiesと同じ数のLinkedListsを追加します。およびオブジェクト..次の優先度要素を返すDequeueメソッド…そしてそれをリストから削除します…</p>

私の問題の大部分は、教授が何を探しているのかを正確に判断できないことです。なぜなら、言葉遣いは私には少し奇妙に思えるからです...それについて尋ねるだけでも助けにはなりませんでした。

明確にするために、私は私に答えを与える誰かを探していません。私は単に正しい方向へのプッシュを探しています。誰かが助けることができればそれは大いにありがたいです。

4

3 に答える 3

3

これが宿題であることについて正直に乾杯します。

優先度付きキューとは何かを読んでおけば、問題をよりよく理解できると思います。

小さな例を見てみましょう。実行するタスクがいくつかあり、各タスクに優先順位があります。

  • Pri 1-呼吸し、食べ、眠る
  • Pri 2-勉強、遊び
  • Pri3-映画を見る

上記のすべての情報は、PriorityQueueで処理できます。優先順位は3種類あるので、リストは3つあります。各リストは、同じ優先度のタスクを維持するためのものです。

PriorityQueue(3)を呼び出して空のPriorityQueueを作成したら、それにタスクを追加できます。

優先度2のタスク「study」を追加するとします。priorityQueue.enqueue(2、 "study")と言うことができます。次に、優先度2の項目を維持しているリストに移動し、そのリストにタスク「調査」を追加します。

同様に、次の優先度3の項目が何であるかを知りたい場合は、priorityQueue.dequeue(3)と言うことができます。次に、優先度3の項目を処理するリストを見つけて、そのリストから最後の要素を削除します。

これにより、作業を開始するための十分な理解が得られるはずです。:)

于 2012-10-25T17:40:57.820 に答える
0

同意しました、割り当てはひどい言い回しです。

同時に、numberOfPrioritiesと同じ数のLinkedListを追加します。

これはおそらく「同時に、numberOfPrioritiesと同じ数のノードをLinkedListに追加する」必要があります。

次の質問は、これらすべてのリンクされたノードにどのような種類のものを格納する必要があるかということです...?

于 2012-10-25T17:41:00.223 に答える
0

1 つだけではなく、リンクされたリストの配列が必要になると思います。問題の説明は矛盾しており、1 つのリンク リストを持つクラスと、オブジェクトを作成するときに多数のリンク リストを作成する必要があると述べています。

クラスのコンストラクタは次のとおりです。

MyPriorityQueue(int npriorities)
{
    noOfPriorities = npriorities;
    queueArray = new ArrayList<List<T>>();
    for (int i = 0; i < npriorities; ++i) queueArray.add(new LinkedList<T>());
}

次に、優先度をキューにマッピングします。enqueue メソッドは、オブジェクトと優先度 (優先度を表す int) を取り、優先度によって指定されたキューにオブジェクトを追加します。dequeue メソッドは、要素を含む最も優先度の高いキューの末尾を返すだけです。

意味がありますか?

于 2012-10-25T17:45:27.780 に答える