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");
}

}

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top