studio programacion para móviles libro edición desarrollo desarrollar curso aprende aplicaciones java data-structures linked-list nodes

java - programacion - duplicar la lista individualmente vinculada



manual de programacion android pdf (1)

No es necesario que elimines nada (es decir, no llamando a removeValue ). Simplemente almacene los valores que encuentre en un conjunto y si el valor ya está en el conjunto, vuelva a vincular su lista en consecuencia. Si no tiene derecho a usar el código de la biblioteca, implemente su conjunto con un árbol de búsqueda binario, será fácil y bastante eficiente.

Así es como lo haría, suponiendo que tengo una implementación de Set :

public void makeUnique() { Set<T> set = new MySet<>(); Node<T> current = getHead(); Node<T> previous = null; while (current != null) { // if current.getValue() is already in the set, we skip this node // (the add method of a set returns true iff the element was not // already in the set and if not, adds it to the set) if (set.add(current.getValue()) { // previous represents the last node that was actually inserted in the set. // All duplicate values encountered since then have been ignored so // previous.setNext(current) re-links the list, removing those duplicates if (previous != null) { previous.setNext(current); current.setPrevious(previous); } previous = current; } current = current.getNext(); } }

[3, 5, 4, 2, 1] donde necesito eliminar los nodos cercanos a la cola, ¿cuál debería ser [1, 2, 3, 5, 4] alguna sugerencia?

public void delete() { for(Node<T> current = getHead(); current != null; current = current.getNext()){ System.out.println(temp.getValue()); removeValue(temp.getValue()); } } } }