java双向 链表add_JAVA实现双向链表的增删功能

packagelinked;classLinkedTable{

}public classLinkedTableTest {//构造单链表

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 voidmain(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 voidsetPoint()

{//设置正向指针

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 voidoutLinked(Node startNode){

Node node= newNode();

node.setNextNode(startNode);do{

node=node.getNextNode();

System.out.print(node.getName()+"----");

}while(node.getNextNode()!=null);

}//反向循环遍历单链表

public static voidoutLinkedF(Node endNode){

Node node= newNode();

node.setNextNodeF(endNode);do{

node=node.getNextNodeF();

System.out.print(node.getName()+"----");

}while(node.getNextNodeF()!=null);

}//循环遍历

public static voidout(Node startNode,Node endNode)

{

outLinked(startNode);

System.out.println();

outLinkedF(endNode);

}//插入节点

public static voidaddNode(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);

}

}classNode {privateString name;privateNode nextNode;privateNode nextNodeF;public voidsetName(String name)

{this.name=name;

}public voidsetNextNode(Node nextNode)

{this.nextNode=nextNode;

}public voidsetNextNodeF(Node nextNodeF)

{this.nextNodeF=nextNodeF;

}publicString getName()

{return this.name;

}publicNode getNextNode()

{return this.nextNode;

}publicNode getNextNodeF()

{return this.nextNodeF;

}publicNode(String name)

{this.name=name;this.nextNode=null;

}publicNode( )

{

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值