JavaRush /Blog Java /Random-PL /Własna implementacja podwójnie połączonej listy LinkedLis...
alexnjc
Poziom 31

Własna implementacja podwójnie połączonej listy LinkedList, głębokie klonowanie.

Opublikowano w grupie Random-PL
Zadanie polega na stworzeniu własnej implementacji jedno lub podwójnie połączonej listy obiektów, przy czym nie można skorzystać ze standardowych implementacji typu LinkedList. Napisz metody głębokiego klonowania tej listy, sprawdź jak klonowany jest liść. Nie można użyć konstruktora klasy do utworzenia kopii. Podczas usuwania elementów z kopii listy pierwotna lista nie powinna się zmieniać, czyli kopie powinny być od siebie całkowicie niezależne. Jakie metody będą optymalne? Napisałem sporo kodu, wszystko wydaje się działać oprócz głębokiego klonowania. Podczas zmiany listy występuje wiele błędów :-( //List as FILO stack public class MyLinkedList implements Cloneable, Serializable { private Node objects; // top of stack private Node first; // bottom of stack ... Klasa wewnętrzna Node // FILO class Node implements Cloneable { private Object o; private Node next; private Node prev; public Node(Object o) { if (o !=null){ this.o = o; next = null; prev = null; System.out.println("First element Node created!"); System.out.println("o= "+o +" next= " + next+" prev= "+ prev); } else throw new IllegalArgumentException("Null element not allowed here!"); } public Node(Object o, Node next) { if (o == null) throw new IllegalArgumentException("Null element not allowed here!"); this.o = o; if (next != null) { this.next = next; this.prev = null; this.next.setPrev(this); System.out.println("element Node created!"); System.out.println("o= "+o +" next= " + next+" prev= "+ prev); } else System.out.println("next == null ?!!"); } public Object getO () { return o; } public Node getNext(){ return next;} public Node getPrev(){ return prev;} public void setO (Object o) { this.o = o;} public void setNext(Node next) { this.next = next;} public void setPrev(Node prev) { this.prev = prev;} ...
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION