我目前正在大学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");
}
}
答案 0 :(得分:0)
创建一个节点并将值存储在其中。
如果header为null,请让头引用您的新节点。
如果header不为null,则取指向的节点,只要next不为null,取下一个引用的节点。如果next为null,则位于列表的末尾,接受下一个引用并让它引用新创建的节点。然后取新节点的最后一个(我之前已经调用它)引用它并引用你找到的节点(列表的末尾)。
这应该让你开始。
答案 1 :(得分:0)
在这里创建数据的是片段:
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));
}
我希望这就是你要找的东西。