Java implementa a função de adicionar e excluir listas vinculadas de mão dupla, código completo
pacote vinculado; classe LinkedTable {} public class LinkedTableTest {// Construa uma única lista vinculada nó estático nó1 = new Node ("name1"); nó estático nó2 = novo nó ("name2"); nó estático nó3 = novo nó ("name3"); nó estático nó4 = novo nó ("name4"); nó estático nó5 = novo nó ("name5"); public static void main (string [] args) {// Definir pointer SetPoint (); // loop através do System.out.println ("******* LISTA LIGADA inicial **********"); out (node1, node5); System.out.println (); // Insira o nó atrás do Node2 AddNode (node2, node3); // loop através do System.out.println ("******* Insira node2.5 ***********"); out (node1, node5); System.out.println (); // excluir node node2.setNextNode (node3); node3.SetNextNodef (node2); // loop através do System.out.println ("******* exclua node2.5 *********"); out (node1, node5); System.out.println (); } // Definir ponteiro public static void Setpoint () {// defina o ponteiro avançado node1.setNextNode (node2); node2.setNextNode (node3); node3.SetNextNode (Node4); Node4.SetNextNode (Node5); // Definir ponteiro reverso node5.setNextNodef (node4); node4.setNextNodef (node3); node4.setNextNodef (node3); node3.SetNextNodef (node2); node2.setNextNodef (node1); } // Liga a lista única LIST Public Static Void Deslinked (Nó StartNode) {Node Node = new Node (); node.setNextNode (startNode); do {node = node.getNextNode (); System.out.print (node.getName ()+"----"); } while (node.getNextNode ()! = null); } // Faça um loop reversa pela lista única LIST LIST Public Static Void superlinkedf (Node EndNode) {Node Node = new Node (); node.setNextNodef (endNode); do {node = node.getNextNodef (); System.out.print (node.getName ()+"----"); } while (node.getNextNodef ()! = null); } // Faça um loop através do vazio estático público (nó startNode, node endnode) {Deslinked (startNode); System.out.println (); superlinkedf (endnode); } // insira nó public static void addNode (nó pré -código, nó nextNode) {node node_add = new node ("name2.5"); node_add.setNextNode (prenode.getNextNode ()); prenode.setNextNode (node_add); node_add.setNextNodef (nextNode.getNextNodef ()); nextNode.setNextNodef (node_add); }} classe nó {nomes de sequência privada; nó privado NextNode; nó privado nextNodef; public void setName (nome da string) {this.name = name; } public void SetNextNode (nó próximo) {this.NextNode = nextNode; } public void setNextNodef (node nextNodef) {this.NextNodef = nextNodef; } public string getName () {return this.name; } public node getNextNode () {return this.NextNode; } public node getNextNodef () {return this.NextNodef; } public node (nome da string) {this.name = name; this.NextNode = null; } public node () {}}1. Construir um nó do nó requer dois ponteiros, um para a frente armazenando a posição do próximo elemento e o outro para armazenar a posição do próximo elemento.
Descrição do parâmetro:
Nome: Usado para armazenar as informações do próprio nó
NextNode: Usado para armazenar ponteiros para a frente
NextNodef: usado para armazenar ponteiros reversos
classe nó {nome da string privada; nó privado NextNode; nó privado nextNodef; public void setName (nome da string) {this.name = name; } public void SetNextNode (nó próximo) {this.NextNode = nextNode; } public void setNextNodef (node nextNodef) {this.NextNodef = nextNodef; } public string getName () {return this.name; } public node getNextNode () {return this.NextNode; } public node getNextNodef () {return this.NextNodef; } public node (nome da string) {this.name = name; this.NextNode = null; } public node () {}}2. Crie um nó e defina um ponteiro para conectar -se ao nó
Ponteiro para a frente: aponte para o próximo nó
Nó reverso: aponte para o nó anterior
// Construa uma única lista vinculada nó estático nó1 = novo nó ("name1"); nó estático nó2 = novo nó ("name2"); nó estático nó3 = novo nó ("name3"); nó estático nó4 = novo nó ("name4"); nó estático nó5 = novo nó ("name5"); public static void Setpoint () {// defina o ponteiro avançado node1.setNextNode (node2); node2.setNextNode (node3); node3.SetNextNode (node4); Node4.SetNextNode (Node5); // defina o ponteiro reverso node5.setNextNodef (node4); node4.setNextNodef (node3); node3.SetNextNodef (node2); node2.setNextNodef (node1); }3. Faça um loop da lista vinculada através da saída
public static void desligado (nó startNode) {node node = new Node (); node.setNextNode (startNode); do {node = node.getNextNode (); System.out.print (node.getName ()+"----"); } while (node.getNextNode ()! = null); } public static void superlinkedf (node endnode) {node node = new node (); node.setNextNodef (endNode); do {node = node.getNextNodef (); System.out.print (node.getName ()+"----"); } while (node.getNextNodef ()! = null); }4. Adicione nós
public static void addNode (nó prenode, nó nextNode) {node node_add = new Node ("name2.5"); node_add.setNextNode (prenode.getNextNode ()); prenode.setNextNode (node_add); node_add.setNextNodef (nextNode.getNextNodef ()); nextNode.setNextNodef (node_add); }5. Exclua nós
node2.SetNextNode (Node3); Node3.SetNextNodef (Node2);
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.