JavaRush /Java Blog /Random-ID /Implementasi sendiri dari LinkedList tertaut ganda, kloni...
alexnjc
Level 31

Implementasi sendiri dari LinkedList tertaut ganda, kloning mendalam.

Dipublikasikan di grup Random-ID
Tugasnya adalah membuat implementasi Anda sendiri atas daftar objek tertaut tunggal atau ganda, namun Anda tidak dapat menggunakan implementasi standar tipe LinkedList. Tulis metode untuk mengkloning daftar ini secara mendalam, periksa bagaimana daun dikloning. Anda tidak dapat menggunakan konstruktor kelas untuk membuat salinan. Saat menghapus elemen dari salinan daftar, daftar asli tidak boleh berubah, artinya salinan harus benar-benar independen satu sama lain. Metode apa yang optimal? Saya menulis banyak kode, semuanya tampak berfungsi kecuali kloning mendalam. Ada banyak gangguan saat mengubah daftar :-( //List as FILO stack public class MyLinkedList implements Cloneable, Serializable { private Node objects; // top of stack private Node first; // bottom of stack ... Kelas dalam Node.js // 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;} ...
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION