devo fare un esercizio in preparazione di un esame universitario, ma non riesco a uscirne fuori qualcuno saprebbe aiutarmi?
la cosa da cui proprio non riesco a cavarmi fuori è come fare a puntare ciclicamente all' elemento next, dovendo passare per head è una cosa difficile da spiegare copio l'esercizio faccio prima
questa è la classe:
questi i metodi da implementare:codice:public class ListLinked { private Node head; private class Node { private String content; private Node next; public Node(String c, Node n) { content = c; next = n; } public Node(String c) { this(c, null); } } public ListLinked() { head = null; } public boolean isEmpty() { return head == null; } public void addToStart(String s) { Node newNode = new Node(s, head); head = newNode; } public static ListLinked cons(String c, ListLinked l) { ListLinked result = new ListLinked(); result.addToStart(c); if (l != null) result.head.next = l.head; return result; } public String first() { return isEmpty() ? null : head.content; } public ListLinked rest() { if (isEmpty()) { return null; } else { ListLinked result = new ListLinked(); result.head = head.next; return result; } } public ListLinked concatenate(ListLinked l) { if (isEmpty()) { return l; } else { return cons(first(), rest().concatenate(l)); } } public int printLength = 5; public int setPrintLength(int pl) { return printLength = pl; } public int getPrintLength() { return printLength; } public String toString() { String result; if (isEmpty()) { return "()"; } else { int i; Node n; result = "(" + head.content; for (n = head.next, i = 1; n != null || (printLength > 0 && i > printLength); n = n.next, i++) { result += " " + n.content; } if (printLength > 0 && i > printLength) result += "..."; result += ")"; return result; } } public static void main(String[] args) { ListLinked l = cons("A", cons("B", cons("C", null))); System.out.println(l); } }
public ListLinked reverse(); // Inverte una lista
public ListLinked remove(String s); // Crea una nuova lista con 's' rimosso.
public ListLinked oddList(); // Crea una nuova lista con solo gli elementi in posizione dispari.
public ListLinked evenList(); // Crea una nuova lista con solo gli elementi in posizione pari.
public int length(); // Riscrivere *senza* usare cicli; potete fare un overload.
mi basta che me ne venga risolto / spiegato uno fra questi, poi dopo per gli altri ci penso io grazie per la pazienza


Rispondi quotando

)
