1

プライオリティ キューのカスタム実装を含む大学の課題を行っています。キュー内の各アイテムはNode<E>、要素とその優先度 (E、p) を格納するものになります。全体的なフィールドは型であることを意図してArrayList<Node<?>>おり、3 つの実装は -

  • アイテムが最後に追加され、最も長くキューにあった最も優先度の高いものによって削除される、並べ替えられていないキュー - タイプArrayList<Node<String>>

  • アイテムがキューの先頭から削除され、次に低い優先度の最初のアイテムの前に追加されるソートされたキュー - したがって、優先度 2 の何かが優先度 1 と 3 のアイテムの間に追加されます。ArrayList<Node<String>>

  • 各 Node 要素が同じ優先度を持つアイテムの配列リストである Queues の並べ替えられたキュー - typeArrayList<Node<ArrayList<String>>>

それぞれに独自のエンキュー、デキューなどのメソッドがあります。

アプリケーションの同じフィールドに対応するプライオリティ キューの 3 つの実装すべてで動作する単一のメソッドを定義でき、フィールドの定義に応じて呼び出されるキュー タイプのそれぞれのエンキュー メソッドを定義できるかどうか疑問に思っていました。 .

4

2 に答える 2

1

priorityQueue のメソッドのインターフェースを定義し、インターフェースの 3 つの実装を作成します。

interface PrioQueue{
  void enqueue(Node node);
  Node dequeue();
}

class PrioQueueVersion1 implements PrioQueue{
   ....
}

class PrioQueueVersion2 implements PrioQueue{
   ....
}

class PrioQueueVersion3 implements PrioQueue{
   ....
}
于 2013-01-27T17:42:45.480 に答える