2016-04-09 2 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; 

, а затем в конструкторе, сравнить все вновь добавляемые Key с CEILING:

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

Таким образом, в конце заполнения вашего LinkedList у вас будет key с наивысшим значением.

ИЛИ:

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

привет спасибо за помощь, я отредактировал мой код. я не уверен, что моя логика для моего цикла и моего оператора if корректна. – yenyen

+0

@yenyen ваша петля в порядке. Просто «возвращай потолок» из метода –

Смежные вопросы