Написание двусвязанного списка на Java

299
25 июня 2017, 14:24

Как создать список самому? В принципе я написал так, что я могу добавить элемент в список, но как удалить - не представляю,точнее представляю, что нужно элементу переназначить знание о следующем элементе, но как?

public class MyList<Robot> {
    class Node<R> {
        R item;
        Node<R> next;
        Node<R> previous;
        int id;
        Node() {
            item = null;
            next = null;
            previous = null;
        }
        Node(R item, Node<R> next) {
            this.item = item;
            this.next = next;
            id++;
        }
        Node(Node<R> previous, R item, Node<R> next) {
            this.previous = previous;
            this.item = item;
            this.next = next;
            id++;
        }

        boolean nextEnd() {
            return (item == null && next == null);
        }
        boolean previousEnd() {
            return (previous == null && item == null);
        }
    }
    private Node<Robot> top = new Node<>();
    public void put(Robot item) {
        top = new Node<>(top, item, top);
    }
    public Robot last() {
        Robot result = top.item;
        if (!top.nextEnd())
            top = top.next;
        return result;
    }
    public void remove(Robot item) {
        //TODO
    }
}
class Test {
    public static void main(String[] args) {
        MyList<String> list = new MyList<>();
        for (String s1 : "Hack Brain and code".split(" "))
            list.put(s1);
        String s5;
        list.remove("Hack");
        while ((s5 = list.last()) != null)
            System.out.println(s5);
    }
}
Answer 1
public remove(Node<R> e) {
    e.previous.next = e.next;
    e.next.previous = e.previous;
}

Оригинальная реализация LinkedList.

READ ALSO
загрузка разных данных с помощью Loader

загрузка разных данных с помощью Loader

Есть абстрактный класс фрагмента который будут наследовать другие фрагментыВести себя они будут все одинаково, кроме одного - они будут...

294
Создание файлов в Андроид

Создание файлов в Андроид

При записи файла перезаписывает старый файл, как сделать чтобы создавался новый файл, а не перезаписывался старый? Код целиком

280
Как определить что звонок завершился? Android

Как определить что звонок завершился? Android

Нужно определить что вызов завершился, те

187