Метод addLast связанного списка - PullRequest
1 голос
/ 29 мая 2011

Как я могу построить addLast метод в Java?Я уже знаю, LinkedList имеет встроенный метод, который делает это)

Вот что я пробовал:

public void addFirst(int d1, double d2) { 
    Link link = new Link(d1, d2); 
    link.nextLink = first; 
    first = link;
        }
public void addLast(int d1 , double d2){
    Link v = new Link(d1, d2);
    v.nextLink = null;
    tail.nextLink = v;
   tail = v  

}

    public void printList() { 
    Link currentLink = first; 
    System.out.print("List: "); 
    while(currentLink != null) { 
    currentLink.printlink(); 
    currentLink = currentLink.nextLink; 
    } 
        System.out.println(""); 
}

МойaddFirst метод работает, но я не знаю, как их соединить.

в основном:

    LinkList list = new LinkList();  
         list.addFirst(4, 4.04); 
         list.addFirst(5, 5.05); 
         list.addlast(3,4.5);
         list.printList();

Ответы [ 3 ]

3 голосов
/ 29 мая 2011

Я понимаю, что это школьное задание, поэтому, не давая ответа, необходимо выполнить следующие шаги:

  1. проверить, пуст ли список
  2. , если список пуст, set head +Хвост, чтобы указать на тот же узел
  3. Итерировать по всем элементам
  4. Обновить хвост к новому узлу

Также нет никакого способа, что метод addFirst, который у вас есть выше, будет работатьвы постоянно сбрасываете значение в tail.

1 голос
/ 29 мая 2011

Ваша проблема в последней строке.Вы хотите, чтобы

tail = v;

Не

v = tail;

Кроме того, в качестве последней строки вашего метода addFirst вы указали

tail = link

- непонятно, почему выделая это.Вам не нужно обновлять хвост списка, когда вы добавляете его вперед.

0 голосов
/ 20 августа 2015
public void addLast(int d1, double d2){

    Node node = new Node(d1, d2);
    Node temp = first;
    while(temp.next!= null) {
        temp = temp.next;
    }
    temp.next = node;
}
...