Java реализует функцию добавления и удаления двусторонних связанных списков, полный код
пакет Linked; класс LinkEdtable {} открытый класс LinkedTableTest {// Создание одного связанного списка статический узлы node1 = new Node ("name1"); статический узел Node2 = New Node ("name2"); Статический узел узел3 = новый узел ("name3"); Статический узел Node4 = новый узел ("name4"); Статический узел узел5 = новый узел ("name5"); public static void main (string [] args) {// установить setpoint (); // цикл через system.out.println ("******* Первоначальный связанный список **********"); Out (Node1, Node5); System.out.println (); // вставить узел за node2 addNode (node2, node3); // цикл через system.out.println ("******* вставка узла2.5 *********"); Out (Node1, Node5); System.out.println (); // Удалить узлы node2.setNextNode (node3); node3.setnextnodef (node2); // цикл через System.out.println ("******* УДАЛЕНИЕ УЗОН22.5 *******"); Out (Node1, Node5); System.out.println (); } // Установить указатель public static void setpoint () {// Установить прямое указатель node1.setNextNode (node2); node2.setnextnode (node3); node3.setnextnode (node4); node4.setnextnode (node5); // Установить обратный указатель node5.setNextNodef (node4); node4.setnextnodef (node3); node4.setnextnodef (node3); node3.setnextnodef (node2); node2.setnextnodef (node1); } // цикл через единственный связанный список public static void utupred (node startnode) {node node = new Node (); node.setNextNode (startNode); do {node = node.getNextNode (); System.out.print (node.getName ()+"----"); } while (node.getNextNode ()! = null); } // обратно цикл через единый список связанного списка public static void outlinkedf (node endnode) {node node = new Node (); node.setnextnodef (endnode); do {node = node.getNextNodef (); System.out.print (node.getName ()+"----"); } while (node.getNextNodef ()! = null); } // цикл через Public Static void Out (Node StartNode, Node EndNode) {Outlinked (startNode); System.out.println (); OutlinkedF (endNode); } // вставить узлы public static void addNode (node prenode, node 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); }} класс Node {private String name; Приватный узел NextNode; Приватный узел NextNodef; public void setName (String name) {this.name = name; } public void setNextNode (node nextNode) {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 (string name) {this.name = name; this.nextnode = null; } public node () {}}1. Создание узла узла требует двух указателей, один для прямого хранения позиции следующего элемента, а другой для обратного хранения позиции следующего элемента.
Описание параметра:
Имя: используется для хранения собственной информации узла
NextNode: используется для хранения указателей вперед
NextNodef: используется для хранения обратных указателей
класс Node {Private String name; Приватный узел NextNode; Приватный узел NextNodef; public void setName (String name) {this.name = name; } public void setNextNode (node nextNode) {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 (string name) {this.name = name; this.nextnode = null; } public node () {}}2. Создайте узел и установите указатель для подключения к узлу
Указатель вперед: укажите на следующий узел
Обратный узел: укажите на предыдущий узел
// Создание единого связанного списка статический узел Node1 = New Node ("name1"); статический узел Node2 = New Node ("name2"); Статический узел узел3 = новый узел ("name3"); Статический узел Node4 = новый узел ("name4"); Статический узел узел5 = новый узел ("name5"); public static void setpoint () {// Установить прямой node1.setnextnode (node2); node2.setnextnode (node3); node3.setnextnode (node4); node4.setnextnode (node5); // Установите обратный указатель node5.setNextNodef (node4); node4.setnextnodef (node3); node3.setnextnodef (node2); node2.setnextnodef (node1); }3. Целью связанного списка через вывод
public static void intlinked (node startNode) {node node = new Node (); node.setNextNode (startNode); do {node = node.getNextNode (); System.out.print (node.getName ()+"----"); } while (node.getNextNode ()! = null); } public static void outlinkedf (node endnode) {node node = new Node (); node.setnextnodef (endnode); do {node = node.getNextNodef (); System.out.print (node.getName ()+"----"); } while (node.getNextNodef ()! = null); }4. Добавьте узлы
public static void AddNode (node prenode, node nextnode) {node node_add = new Node ("namo2.5"); node_add.setnextnode (prenode.getNextNode ()); prenode.setnextnode (node_add); node_add.setnextnodef (nextnode.getnextnodef ()); nextnode.setnextnodef (node_add); }5. Удалить узлы
node2.setnextnode (node3); node3.setnextnodef (node2);
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.