Вопрос

В настоящее время я работаю над проектом вдвойне связанного списка на моем курсе Java в колледже. Я понимаю концепцию вдвойне связанных списков, связанных списков и списков. Однако у меня много проблем с написанием моей программы, так как я не уверен, как создать данные, которые мне нужны для изменения в моих методах. Наш профессор обычно дает нам вклад, который он будет использовать, но не на этот раз, и я не могу понять это в своем исследовании.

Я полагаю, что мой главный вопрос: может ли кто -нибудь написать код для меня, чтобы начать работать и начать понимать, какие мои методы должны делать лучше?

Вот что у меня есть до сих пор. (В основном только скелет переопределения ..)

Большое спасибо за любую помощь.

import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;

public class DoublyLinkedList<E> implements List<E>{

DoublyLinkedListNode header;

public static void main(String[] args) {

}
public boolean add(E e) {
    return false;
}
public void add(int index, E element) {

}
public boolean addAll(Collection<? extends E> c) {
    return false;
}
public void clear() {
    header=null;
}
public boolean contains(Object o) {
    return false;
}
public E get(int index) {
    return null;
}
public int indexOf(Object o) {
    return 0;
}
public boolean isEmpty() {
    return header == null;
}
public int lastIndexOf(Object o) {
    return 0;
}
public ListIterator<E> listIterator() {
    return null;
}
public boolean remove(Object o) {
    return false;
}
public E remove(int index) {
    return null;
}
public int size() {
    return 0;
}
public Object[] toArray() {
    return null;
}
private class DoublyLinkedListNode{
    DoublyLinkedListNode next;
    DoublyLinkedListNode last;
    E contents;
}

//extra credit
private class DoublyLinkedListItr  implements java.util.ListIterator{

    public void add(Object arg0) {

    }
    public boolean hasNext() {

        return false;
    }
    public boolean hasPrevious() {

        return false;
    }
    public Object next() {

        return null;
    }
    public int nextIndex() {

        return 0;
    }
    public Object previous() {

        return null;
    }
    public int previousIndex() {

        return 0;
    }
    public void remove() {

    }
    public void set(Object arg0) {

    }

}
public ListIterator<E> listIterator(int index) {
    throw new UnsupportedOperationException("not implemented");
}
public <T> T[] toArray(T[] a) {
    throw new UnsupportedOperationException("not implemented");
}
public List<E> subList(int fromIndex, int toIndex) {
    throw new UnsupportedOperationException("not implemented");
}
public boolean retainAll(Collection<?> c) {
    throw new UnsupportedOperationException("not implemented");
}
public E set(int index, E element) {
    throw new UnsupportedOperationException("not implemented");
}
public boolean removeAll(Collection<?> c) {
    throw new UnsupportedOperationException("not implemented");
}
public boolean addAll(int index, Collection<? extends E> c) {
    throw new UnsupportedOperationException("not implemented");
}
public Iterator<E> iterator() {
    throw new UnsupportedOperationException("not implemented");
}
public boolean containsAll(Collection<?> c) {
    throw new UnsupportedOperationException("not implemented");
}

}

Это было полезно?

Решение

Для создания данных здесь есть фрагмент:

public static void main(String[] args) {
  DoublyLinkedList<String> doublyLinkedList = new DoublyLinkedList<String>();
  doublyLinkedList.add("Hello");
  doublyLinkedList.add("World");
  // If you want to store int
  DoublyLinkedList<Integer> dlli = new DoublyLinkedList<Integer>();
  dlli.add(new Integer(10));
  dlli.add(new Integer(5));
}

Я надеюсь, что это то, что вы ищете.

Другие советы

Создайте узел и сохраните значение в нем.

Если заголовок нулевой, имейте заголовок ваш новый узел.

Если заголовок не является нулевым, возьмите узел, на который указывается, и, пока следующий не является нулевым, возьмите узел, на который ссылаются следующий. Если дальше, вы находитесь в конце списка, возьмите следующую ссылку и обратитесь к ней в недавно созданный узел. Затем возьмите последнюю (я бы назвал его предыдущим) ссылку на ваш новый узел и попросите его ссылаться на ваш найденный узел (конец списка).

Это должно заставить вас начать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top