Добавление элемента в заданную позицию в односвязном списке (Java) - PullRequest
0 голосов
/ 12 марта 2019

Если кто-нибудь может помочь мне разобраться в этом вопросе, я буквально дам вам моего первенца.Извиняюсь за любые проблемы с форматированием и т. Д., Так как это моя первая публикация (пожалуйста, будьте осторожны со мной !!).

В настоящее время я борюсь с методом добавления для общего класса связанного списка.Вот его описание: Вставляет указанный объект в указанную позицию в этом списке.Смещает объект, находящийся в данный момент в этой позиции (если есть), и любые последующие объекты вправо (т. Е. Добавляет один к их индексам).

Вот код, который у меня есть в настоящее время для метода, за исключениемобработка исключений.

next = head;
size++;
for (int i = 0; i < index; i++) {
     next = next.getNext();
} // for                                                                                                                                                                                    
GenListNode<T> prev = next;
GenListNode<T> current = next;
for (int count = 0; count < size - 1; count++) {
     prev = next;
     current = next;
     for (int i = count; i < size - 3; i++) {
          prev = prev.getNext();
     } // for                                                                                                                                                                                
     for (int j = count; j < size - 2; j++) {
         if (current.getNext() == null) {
             current.setNext(new GenListNode<T>());
         } // if                                                                                                                                                                             
         current = current.getNext();
      } // for                                                                                                                                                                                
current.setData(prev.getData());
} // for
next.setData(obj);

Вот код моего класса GenListNode.

private GenListNode<T> next;
private T data; 

    public GenListNode(T data, GenListNode<T> next) {
        this.next = next;
        this.data = data;
    } // GenListNode                                                                                                                                                                                

    public GenListNode(T data) {
        this.data = data;
    } // GenListNode                                                                                                                                                                                

    public GenListNode() {
    } // GenListNode                                                                                                                                                                                

    public void setData(T data) {
        this.data = data;
    } // setData                                                                                                                                                                                    

    public void setNext(GenListNode<T> n) {
         this.next = n;
    } // setNext                                                                                                                                                                                    

    public T getData() {
         return data;
    } // getData                                                                                                                                                                                    

    public GenListNode<T> getNext() {
        return next;
    } // getNext                                                                                                                                                                                    

Проблема, с которой я сейчас сталкиваюсь, заключается в том, что когда я добавляю объект в индекс где-то вВ середине списка это работает, однако, когда я пытаюсь добавить в начало списка, самый последний элемент списка исчезает.В общем, этот код стал несколько запутанным и запутанным, и он не делает то, что должен делать.Любая помощь приветствуется, и если есть что-то, что я могу уточнить, пожалуйста, дайте мне знать.

...