Java Простой связанный список - PullRequest
0 голосов
/ 28 февраля 2020

Я прохожу курс по структурам данных в университете, и у меня возникают проблемы с пониманием того, почему мой односвязный список не следует алгоритму FIFO.

Вот мой класс Node / PSVM:

public class Node {

    protected int data;
    protected Node next;

    Node(int element){
        this.data = element;
        next = null;
    }



    public static void main(String[] args) {
        LinkedList ll = new LinkedList();

        ll.addElement(300);
        ll.addElement(600);
        ll.addElement(900);
        ll.addElement(1200);


        ll.printList();
    }
}

Это мой класс связанного списка:


public class LinkedList {

    // create a reference of type node to point to head
    Node head;

    // keep track of the size of ll
    int size = 0;

    void printList() {
        Node n = head;

        for (int i = 0; i < llSize(); i++) {
            System.out.print(n.data + " ");
            n = n.next;

        }
        System.out.println("");
    }


    int llSize() {
        return this.size;
    }

    boolean isEmpty() {
        return size == 0;
    }

    void addElement(int element) {

        if (isEmpty()) {
            head = new Node(element);

        } else {
            Node nNode = new Node(element);
            Node current = head;

            while(current.next != null){
                current = current.next;
            }

            current.next = nNode;

        }

        this.size++;

    }


}

Заранее извините, если это базовый c вопрос / проблема. Я спросил моего профессора, и она прислала мне ссылку на YouTube, которая действительно не помогла.

Спасибо за ваше время.

1 Ответ

1 голос
/ 28 февраля 2020

В коде нет ошибок.

Чтобы список работал как FIFO, узлы будут добавлены с одного конца и удалены с противоположного конца.

Поэтому вам нужно будет выполнить операцию delete . Вы можете поддерживать отдельную ссылку на головной и хвостовой узлы.

...