public classLinkedlist {publicNode head;//指向表头地址的引用public intlength;publicLinkedlist(){//建立头结点
length=0;
head=newNode();
head.data=0;
head.left=null;
head.right=null;
}public boolean Insert(intpos,Node node) {//在下标为pos-1和pos的结点之间插入node结点int count=0;
Node preNode=head;while(preNode!=null&&count
preNode=preNode.right;
}if(preNode==null||count!=pos-1){return false;
}if(preNode.right==null) {
preNode.right=node;
node.left=preNode;
node.right=null;++length;return true;
}
Node nextNode=preNode.right;
node.right=nextNode;
node.left=preNode;
preNode.right=node;
nextNode.left=node;++length;return true;
}public boolean Delete(intpos) {//删除指定位置的结点if(pos<0||pos>=length) {return false;
}int count=0;
Node curNode=head;while(count!=pos&&curNode!=null) {++count;
curNode=curNode.right;
}if(count!=pos||curNode==null) {return false;
}if(curNode.right==null) {
curNode.left.right=null;
curNode=null;
}if(curNode.right!=null) {//前
curNode.left.right=curNode.right;
curNode.right.left=curNode.left;
}--length;return true;
}public intSize() {//返回链表元素个数returnlength;
}public booleanisEmpty() {if(length==0) {return true;
}return false;
}public booleanTraverse() {//输出链表
Node preNode=head;while(preNode.right!=null) {
preNode=preNode.right;
System.out.print(preNode.data+" ");
}return true;
}public int getData(intpos) {//取得指定位置结点元素
Node preNode=head;int count=0;while(count!=pos) {
preNode=preNode.right;++count;
}returnpreNode.data;
}public booleanDelete(Node node) {//删除node结点
Node curNode=head;while(curNode!=node&&curNode!=null) {
curNode=curNode.right;
}if(curNode!=node) {return false;
}if(curNode.right!=null) {
curNode.left.right=curNode.right;
curNode.right.left=curNode.left;--length;return true;
}if(curNode.right==null) {
curNode.left.right=null;--length;return true;
}return false;
}
}