JavaRush /Blog Java /Random-MS /Pelaksanaan sendiri LinkedList berganda, pengklonan dalam...
alexnjc
Tahap

Pelaksanaan sendiri LinkedList berganda, pengklonan dalam.

Diterbitkan dalam kumpulan
Tugasnya adalah untuk mencipta pelaksanaan anda sendiri bagi senarai objek yang dipautkan secara tunggal atau berganda, tetapi anda tidak boleh menggunakan pelaksanaan standard jenis LinkedList. Tulis kaedah untuk pengklonan dalam senarai ini, semak cara daun diklon. Anda tidak boleh menggunakan pembina kelas untuk membuat salinan. Apabila memadamkan elemen daripada salinan senarai, senarai asal tidak boleh berubah, iaitu, salinan hendaklah bebas sepenuhnya antara satu sama lain. Apakah kaedah yang akan menjadi optimum? Saya menulis sekumpulan kod, semuanya nampaknya berfungsi kecuali pengklonan mendalam. Terdapat banyak gangguan apabila menukar senarai :-( //List as FILO stack public class MyLinkedList implements Cloneable, Serializable { private Node objects; // top of stack private Node first; // bottom of stack ... Inner class 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;} ...
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION