Java implementa la función de agregar y eliminar listas vinculadas bidireccionales, código completo
paquete vinculado; clase LinkedTable {} public class LinkedTableTetest {// Construye un solo nodo de nodo estático de la lista vinculada1 = nuevo nodo ("name1"); nodo de nodo estático2 = nuevo nodo ("name2"); nodo estático nodo3 = nuevo nodo ("name3"); nodo estático nodo4 = nuevo nodo ("name4"); nodo estático nodo5 = nuevo nodo ("name5"); public static void main (string [] args) {// set Pointer setPoint (); // bucle a través de System.out.println ("******* Lista vinculada inicial **********"); out (nodo1, nodo5); System.out.println (); // insertar nodo detrás de nodo2 addNode (nodo2, nodo3); // bucle a través de System.out.println ("******* Insertar nodo2.5 ***********"); out (nodo1, nodo5); System.out.println (); // eliminar el nodo nodo2.setNextNode (node3); node3.setNextNodeF (node2); // bucle a través de System.out.println ("******* Delete Node2.5 *******"); out (nodo1, nodo5); System.out.println (); } // Establecer Pointer public static void setPoint () {// establecer el nodo de pointer delantero1.setNextNode (node2); node2.setNextNode (node3); node3.setNextNode (node4); node4.setNextNode (node5); // establecer el nodo del puntero inverso5.SetNextNodeF (node4); node4.setNextNodef (node3); node4.setNextNodef (node3); node3.setNextNodeF (node2); node2.setNextNodef (node1); } // bucle a través de la única lista vinculada public static void Outlinked (nodo startNode) {nodo nodo = new node (); node.setNextNode (startNode); do {node = node.getNextNode (); System.out.print (node.getName ()+"----"); } while (node.getNextNode ()! = NULL); } // Reversamente recorre la lista única de la lista vinculada void static outlinkedf (nodo endnode) {nodo nodo = new node (); node.setNextNodef (EndNode); do {node = node.getNextNeFF (); System.out.print (node.getName ()+"----"); } while (node.getNextNodef ()! = NULL); } // recorren public static void out (nodo startnode, nodo endnode) {OutLinked (startNode); System.out.println (); Outlinkedf (EndNode); } // Inserte el nodo public static void addNode (nodo prenode, nodo nextNode) {nodo node_add = nuevo nodo ("name2.5"); node_add.setNextNode (prenode.getNextNode ()); prenode.setNextNode (node_add); node_add.setNextNodef (nextNode.getNextNeF ()); nextNode.setNextNodeF (node_add); }} nodo de clase {nombre de cadena privada; Nodo privado NextNode; Nodo privado NextNodef; public void setName (nombre de cadena) {this.name = name; } public void setNextNode (nodo nextNode) {this.nextNode = nextNode; } public void setNextNodef (nodo nextNodeF) {this.nextnodeF = nextNodef; } public String getName () {return this.name; } public nodo getNextNode () {return this.nextnode; } public nodo getNextNodeF () {return this.nextnodeF; } nodo público (nombre de cadena) {this.name = name; this.nextnode = null; } public nodo () {}}1. La construcción de un nodo de nodo requiere dos punteros, uno para almacenar hacia adelante la posición del siguiente elemento y el otro para almacenar inversa la posición del siguiente elemento.
Descripción del parámetro:
Nombre: Se utiliza para almacenar la propia información del nodo
NextNode: Se usa para almacenar punteros hacia adelante
nextNodef: se usa para almacenar consejos inversos
nodo de clase {nombre de cadena privada; Nodo privado NextNode; Nodo privado NextNodef; public void setName (nombre de cadena) {this.name = name; } public void setNextNode (nodo nextNode) {this.nextNode = nextNode; } public void setNextNodef (nodo nextNodeF) {this.nextnodeF = nextNodef; } public String getName () {return this.name; } public nodo getNextNode () {return this.nextnode; } public nodo getNextNodeF () {return this.nextnodeF; } nodo público (nombre de cadena) {this.name = name; this.nextnode = null; } public nodo () {}}2. Cree un nodo y establezca un puntero para conectarse al nodo
Posinter delantero: apunte al siguiente nodo
Nodo inverso: apunte al nodo anterior
// construir un solo nodo de nodo estático de lista vinculada1 = nuevo nodo ("name1"); nodo de nodo estático2 = nuevo nodo ("name2"); nodo estático nodo3 = nuevo nodo ("name3"); nodo estático nodo4 = nuevo nodo ("name4"); nodo estático nodo5 = nuevo nodo ("name5"); Public static void setPoint () {// Establezca el nodo del puntero delantero1.setNextNode (node2); node2.setNextNode (node3); node3.setNextNode (node4); node4.setNextNode (node5); // Establecer el nodo del puntero inverso5.SetNextNodef (node4); node4.setNextNodef (node3); node3.setNextNodeF (node2); node2.setNextNodef (node1); }3. Enojo la lista vinculada a través de la salida
public static void Outlinked (nodo startNode) {nodo nodo = new node (); node.setNextNode (startNode); do {node = node.getNextNode (); System.out.print (node.getName ()+"----"); } while (node.getNextNode ()! = NULL); } public static void outlinkedf (nodo endnode) {nodo nodo = new node (); node.setNextNodef (EndNode); do {node = node.getNextNeFF (); System.out.print (node.getName ()+"----"); } while (node.getNextNodef ()! = NULL); }4. Agregar nodos
public static void addNode (nodo prenode, nodo nextNode) {node node_add = nuevo nodo ("name2.5"); node_add.setNextNode (prenode.getNextNode ()); prenode.setNextNode (node_add); node_add.setNextNodef (nextNode.getNextNeF ()); nextNode.setNextNodeF (node_add); }5. Eliminar nodos
node2.setNextNode (node3); node3.setNexTnEfF (node2);
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.