Я пытаюсь заставить мой метод Put вставлять ключи по порядку.В настоящее время кажется, что вставить только в несортированном порядке.Как мне сделать так, чтобы узлы вставлялись в правильное положение при сохранении списка.
public void put(Key key, Value val) {
if (key == null) throw new IllegalArgumentException("first argument to put() is null");
if (val == null) {
delete(key);
return;
}
Node x = first;
while (x != null && key.compareTo(x.key) <= 0) {
if (key.equals(x.key)) {
x.val = val;
return;
}
else {
x = x.next;
}
}
x = first;
Node newNode = new Node(key,val,x);
if (first==null || key.compareTo(x.key)>=0) {
newNode.next = first;
first = newNode;
}
else {
while(x.next != null && key.compareTo(x.next.key)<=0) {
x = x.next;
}
newNode.next = x.next;
x.next = newNode;
}
n++;
}
Я вставляю каждую из этих строк в качестве ключей в обратном порядке («муравей», «пчела», «кот»,"dog", "emu", "fox", "gem", "hat", "ice", "jar") и затем проверяют, отсортирован ли список.В моей текущей реализации список остается в обратном порядке и не сортируется.