JavaRush /Blogue Java /Random-PT /Implementação própria de LinkedList duplamente vinculado,...
alexnjc
Nível 31

Implementação própria de LinkedList duplamente vinculado, clonagem profunda.

Publicado no grupo Random-PT
A tarefa é criar sua própria implementação de uma lista de objetos vinculada simples ou duplamente, mas você não pode usar implementações padrão do tipo LinkedList. Escreva métodos para clonagem profunda desta lista, verifique como a folha é clonada. Você não pode usar o construtor de classe para criar uma cópia. Ao excluir elementos de uma cópia de uma lista, a lista original não deve ser alterada, ou seja, as cópias devem ser totalmente independentes umas das outras. Quais métodos serão ideais? Eu escrevi um monte de código, tudo parece funcionar, exceto a clonagem profunda. Existem muitas falhas ao alterar a lista :-( //List as FILO stack public class MyLinkedList implements Cloneable, Serializable { private Node objects; // top of stack private Node first; // bottom of stack ... Classe interna 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;} ...
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION