2016-04-09 12 views
0

鍵の大きさ以上の最小の鍵をシンボルテーブルに戻す方法を見つけ出すことはできません。誰かが正しい方向に向けることができれば、どこから始めるべきかわからないのですばらしいでしょう。リンクリストの天井の仕方は?

public class LinkedListST<Key extends Comparable<Key>, Value> { 
    private Node first; 

    // a helper linked list data type 
    private class Node { 
     private Key key; 
     private Value val; 
     private Node next; 

    public Node(Key key, Value val, Node next) { 
     this.key = key; 
     this.val = val; 
     this.next = next; 
    } 
} 

public Key ceiling (Key key) { 
    Key ceiling = null; 
    for(Node x = first; x != null; x = x.next){ 
     if(first.key.compareTo(ceiling) > 0) 
      ceiling = key; 
    } 
    return null; //TODO 
} 
+0

ヒント:あなたが探しているキーを使用して、リスト内の各キーを比較し、リストを繰り返します。 –

答えて

0

あなたNodeクラスの静的変数を作成します。

private static Key CEILING = null; 

をそしてあなたのコンストラクタで、CEILINGておき、新たに追加されたKeyを比較:

if(key > CEILING) // Just algorithm. Use compareTo() method in your case. 
    CEILING = key 

このように、LinkedListを埋める最後に、最も高い値を持つkeyがあります。

OR:

if(key < CEILING) 
    CEILING = key // for smallest key 
+0

こんにちは、私のコードを編集していただきありがとうございます。私のループと私のifステートメントのロジックが正しいかどうかわかりません – yenyen

+0

@yenyenあなたのループは問題ありません。メソッドからちょうど 'return ceiling ' –

関連する問題