JavaRush /Blog Java /Random-ES /Implementación propia de LinkedList doblemente enlazado, ...
alexnjc
Nivel 31

Implementación propia de LinkedList doblemente enlazado, clonación profunda.

Publicado en el grupo Random-ES
La tarea es crear su propia implementación de una lista de objetos simple o doblemente enlazada, pero no puede utilizar implementaciones estándar del tipo LinkedList. Escriba métodos para la clonación profunda de esta lista, verifique cómo se clona la hoja. No puede utilizar el constructor de clases para crear una copia. Al eliminar elementos de una copia de una lista, la lista original no debe cambiar, es decir, las copias deben ser completamente independientes entre sí. ¿Qué métodos serán óptimos? Escribí un montón de código, todo parece funcionar excepto la clonación profunda. Hay muchos fallos al cambiar la lista :-( //List as FILO stack public class MyLinkedList implements Cloneable, Serializable { private Node objects; // top of stack private Node first; // bottom of stack ... Clase interna Nodo // 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;} ...
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION