0

私は、顧客を支援するのにかかる時間に基づいてキューに顧客を追加するよう求める質問に取り組んでいます. 最も時間がかからない顧客は、最初に支援される顧客です (あまり意味がありませんが、まあまあです)。

私はすでに一般的な「パブリック クラス MyQueue」を作成しましたが、問題の主なアイデアは、MyQueue を ServiceQueue クラスに継承し、本質的にプッシュ メソッドを継承することです。これは完全なコードではなく、動作しないことはわかっています。

void push(CustomerRequest request){
       if (head == null)
   {
        Node newHead = new Node(request);
        head = newHead;
   }
       else {

        Node newCustomer = new Node(request);
        Node node = head;
        int count;

        while(request.requiredServiceTime > node-->*(I need the service time)*)
        {
            node = node.next;
        }
        ///insert node here
       }
    }

CustomerRequest クラスもあります。

public class CustomerRequest {

String name;
int requiredServiceTime;

public CustomerRequest(String name, int requiredServiceTime){
    this.name = name;
    this.requiredServiceTime = requiredServiceTime;

}
}

私の質問は次のとおりです。作成したノードから requiredServiceTime 情報を取得し、キューに入れる必要があるのはどうすればよいですか?

追加した:

public class Node<T> {

    Node<T> next;
T data;

public Node(T data)
{
    this.data = data;
}

public Node(T data, Node<T> next)
{
    this.data = data;
    this.next = next;
}

}

4

3 に答える 3

0

なぜリンクされたリストでなければならないのですか? CustomerRequests を SortedSet に入れ、カスタム Comparator (requiredeServiceTimes を比較する) を SortedSet のコンストラクターに渡します。詳細はここに文書化されています: http://docs.oracle.com/javase/6/docs/api/java/util/SortedSet.html

要素が SortedSet に入ると、"first()" を使用してセットの先頭から最速の顧客を取得できます。

于 2013-04-09T21:48:36.077 に答える