Java는 양방향 링크 목록 추가 및 삭제 기능을 구현합니다.
패키지 링크; 클래스 linkedTable {} public class inlinkedTableTest {// 단일 링크 된 목록 구성 정적 노드 노드 1 = 새 노드 ( "name1"); 정적 노드 노드 2 = 새 노드 ( "name2"); 정적 노드 노드 3 = 새 노드 ( "name3"); 정적 노드 노드 4 = 새 노드 ( "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을 통한 루프 ( "******* node2.5 ***********"); out (node1, node5); System.out.println (); // 노드 삭제 node2.setnextNode (node3); node3.setnextNodef (node2); // system.out.println을 통한 루프 ( "******* node2.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 dountinked (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 dovoid doledf (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) {doustnoded (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); }} 클래스 노드 {개인 문자열 이름; 개인 노드 NextNode; 개인 노드 NextNodef; public void setName (문자열 이름) {this.name = 이름; } public void setNextNode (노드 NextNode) {this.nextNode = NextNode; } public void setNextNodef (노드 NextNodef) {this.nextNodef = NextNodef; } public String getName () {return this.name; } public node getNextNode () {return this.nextNode; } public node getNextNodef () {return this.nextNodef; } public node (문자열 이름) {this.name = 이름; this.nextNode = null; } public node () {}}1. 노드 노드를 구성하려면 두 개의 포인터가 필요합니다. 하나는 다음 요소의 위치를 앞으로 저장하고 다른 하나는 다음 요소의 위치를 리버스 저장하기 위해 필요합니다.
매개 변수 설명 :
이름 : 노드 자체 정보를 저장하는 데 사용됩니다
NextNode : 전진 포인터를 저장하는 데 사용됩니다
NextNodef : 리버스 포인터를 저장하는 데 사용됩니다
클래스 노드 {개인 문자열 이름; 개인 노드 NextNode; 개인 노드 NextNodef; public void setName (문자열 이름) {this.name = 이름; } public void setNextNode (노드 NextNode) {this.nextNode = NextNode; } public void setNextNodef (노드 NextNodef) {this.nextNodef = NextNodef; } public String getName () {return this.name; } public node getNextNode () {return this.nextNode; } public node getNextNodef () {return this.nextNodef; } public node (문자열 이름) {this.name = 이름; this.nextNode = null; } public node () {}}2. 노드를 만들고 노드에 연결하기 위해 포인터를 설정합니다.
전방 포인터 : 다음 노드를 가리 킵니다
리버스 노드 : 이전 노드를 가리 킵니다
// 단일 링크 된 목록을 구성 static node node1 = new Node ( "name1"); 정적 노드 노드 2 = 새 노드 ( "name2"); 정적 노드 노드 3 = 새 노드 ( "name3"); 정적 노드 노드 4 = 새 노드 ( "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 unftinked (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 undrinkedf (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 = 새 노드 ( "name2.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을 더 지원하기를 바랍니다.