Progetto DoubleLyLinkedList: Esempio Input
-
27-10-2019 - |
Domanda
Attualmente sto lavorando a un progetto di elenco doppiamente collegato nel mio corso di college Java. Comprendo il concetto di elenchi doppiamente collegati, elenchi collegati ed elenchi. Tuttavia ho molti problemi a scrivere il mio programma in quanto non sono sicuro di come creare i dati di cui ho bisogno per modificare nei miei metodi. Il nostro professore di solito ci dà l'input che utilizzerà, ma non ci ha fatto questa volta, e non riesco a capirlo nella mia ricerca.
Suppongo che la mia domanda principale sia che qualcuno potrebbe scrivere un codice con cui iniziare a lavorare e iniziare a capire cosa devono fare meglio i miei metodi?
Ecco cosa ho finora. (Fondamentalmente solo lo scheletro di sovraccarico ..)
Grazie mille per qualsiasi aiuto.
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");
}
}
Soluzione
Per la creazione dei dati qui è lo snippet:
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));
}
Spero che sia ciò che stai cercando.
Altri suggerimenti
Crea un nodo e memorizza il valore in esso.
Se l'intestazione è null, avere l'intestazione riferimento al nuovo nodo.
Se l'intestazione non è nullo, prendi il nodo puntato e fintanto che il prossimo non è nullo, prendi il nodo a cui si fa riferimento da Avanti. Se il prossimo è nullo sei alla fine dell'elenco, prendi il riferimento successivo e fai riferimento al nodo appena creato. Quindi prendi l'ultimo riferimento (l'avrei chiamato precedente) del tuo nuovo nodo e fargli fare riferimento al nodo trovato (fine dell'elenco).
Questo dovrebbe farti iniziare.