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( )
{
}
}