2016-04-06 2 views
0

Это то, что у меня есть до сих пор, но я не уверен, правильно ли я делаю это. У меня возникают проблемы, возвращая maxKey для неупорядоченного связанного списка:Как вернуть максимальный ключ в таблицу символов

public class LinkedListST<Key extends Comparable<Key>, Value> { 
    private Node first; 
    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 maxKey (Key key) { 
    Node currentNode = null; //current node we are on 
    if (first == null) 
     return null; 
    for(currentNode = first; currentNode != null; currentNode = currentNode.next){ 

     } 
    return null; 
} 
} 

ответ

0

Вам нужно сравнить все ключи и найти самый большой

public Key maxKey() { 
    Node currentNode = null; //current node we are on 
    if (first == null) 
     return null; 
    Key<Comparable> max = first.key; 
    do { 
     currentNode = currentNode.next; 
     if (currentNode == null) break; 
     if (currentNode.key.compareTo(max) > 0) { 
     max = currentNode.key; 
     } 
    while (true); 
    return max; 
} 
+0

не Что бы код выглядеть, если он не имел аргументы принимать в ? – yenyen

+0

Скорректирован, чтобы показать метод без аргументов ... Это тот же код, что и я никогда не использовал параметр 'Key' изначально – ControlAltDel

+0

, который по-прежнему не работает в моей программе, он говорит:« Не удалось создать LinkedList, созданный последовательным помещением ниже указанного значения ключа пары: # of puts = 1, пары ключ-значение = (ZS, 160) ", и я действительно не понимаю, что это значит – yenyen

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