Вставка значений в отсортированную таблицу символов по ключу - PullRequest
0 голосов
/ 17 апреля 2019

Я пытаюсь заставить мой метод 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") и затем проверяют, отсортирован ли список.В моей текущей реализации список остается в обратном порядке и не сортируется.

...