JAVA实现双向链表的增删功能
2018-03-26 03:19
591 查看
JAVA实现双向链表的增删功能,完整代码
1,构造node节点,需要两个指针,一个正向存储下一个元素的位置,一个反向存储下一个元素的位置
参数说明: name:用于存储node自身的信息 nextNode:用于存储正向指针 nextNodeF:用于存储反向指针
2,创建节点,设置指针连接节点正向指针:指向下一个节点反向节点:指向上一个节点
3,将链表循环遍历输出
4,添加节点
5,删除节点
package linked; class LinkedTable{ } public class LinkedTableTest { //构造单链表 static Node node1 = new Node("name1"); static Node node2 = new Node("name2"); static Node node3 = new Node("name3"); static Node node4 = new Node("name4"); static Node node5 = new Node("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); node3.setNextNodeF(node2); node2.setNextNodeF(node1); } //循环遍历单链表 public static void outLinked(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); } } class Node { private String name; private Node nextNode; private Node 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,构造node节点,需要两个指针,一个正向存储下一个元素的位置,一个反向存储下一个元素的位置
参数说明: name:用于存储node自身的信息 nextNode:用于存储正向指针 nextNodeF:用于存储反向指针
class Node { private String name; private Node nextNode; private Node 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,创建节点,设置指针连接节点正向指针:指向下一个节点反向节点:指向上一个节点
//构造单链表 static Node node1 = new Node("name1"); static Node node2 = new Node("name2"); static Node node3 = new Node("name3"); static Node node4 = new Node("name4"); static Node node5 = new Node("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 outLinked(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("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);class Node {private String name;private Node nextNode;private Node 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( ){}}http://www.ayp2545.cn/ http://www.pgn4393.cn/ http://www.npd9270.cn/ http://www.sfi6002.cn/ http://www.nne5492.cn/ http://www.yai2320.cn/ http://www.ics4171.cn/ http://www.sfv9051.cn/ http://www.ccg1407.cn/ http://www.hjn1455.cn/ http://www.ygf6271.cn/ http://www.vfm1218.cn/ http://www.aaa4131.cn/ http://www.guc5469.cn/ http://www.dcj3647.cn/ http://www.utm9669.cn/ http://www.ahg7671.cn/ http://www.nxn1651.cn/ http://www.rrq5757.cn/ http://www.pbr1256.cn/ http://www.oai3459.cn/ http://www.vaj6107.cn/ http://www.xfc0942.cn/ http://www.evc2128.cn/ http://www.bwu7749.cn/ http://www.rmf4655.cn/ http://www.pyq8206.cn/ http://www.sdk5229.cn/ http://www.sez8143.cn/ http://www.tfn8353.cn/ http://www.uem3051.cn/ http://www.tza5452.cn/ http://www.epp9269.cn/ http://www.tsr7510.cn/ http://www.xhv3734.cn/ http://www.vrc9998.cn/ http://www.dsf5404.cn/ http://www.xjm6385.cn/ http://www.iaz1229.cn/ http://www.kcv6320.cn/ http://www.usl0022.cn/ http://www.abo8793.cn/ http://www.qeb9677.cn/ http://www.atx6995.cn/ http://www.buv6436.cn/ http://www.lll4952.cn/ http://www.cjx5965.cn/ http://www.otg2660.cn/ http://www.bmn9515.cn/ http://www.ewf1466.cn/ http://www.cbc3788.cn/ http://www.iqp5694.cn/ http://www.drr8954.cn/ http://www.blk2293.cn/ http://www.tjx3222.cn/ http://www.ksy2010.cn/
相关文章推荐
- JAVA实现双向链表的增删功能的方法
- JAVA实现双向链表的增删功能
- java链表增删查改等功能的实现
- java 链表实现增删改查功能
- 用java实现双向循环链表的增删改查
- java双向链表的实现(部分功能)
- java实现双向循环链表和单链表
- Java语言中链表和双向链表的实现
- Java模拟单向链表和双向链表的实现
- Java实现双向链表
- 使用JAVA实现双向链表
- java实现双向链表的操作
- 使用java实现双向链表数据结构
- 单链表与双向链表的Java实现
- JAVA实现双向链表
- Java 之 模拟单向链表和双向链表的实现
- 利用模板类编写一个程序,实现双向链表的插入、删除、查找、显示的功能。
- C 语言 实现双向链表 模拟ArrayList功能 可追加,插入,移除,得到指定index 的元素值
- java 语言中链表和双向链表的实现!
- Java语言中链表和双向链表的实现