一个链表项的定义:
class LinkNode
{
private int data;
LinkNode next;
LinkNode prev;
public LinkNode(int data)
{
this.data=data;
this.next=null;
this.prev=null;
}
}
链表定义:
public class LinkNodeList {
LinkNode head;//定义链表头
LinkNode last;//定义链表尾
public LinkNode queryNode(int index)//查询第index个的链表节点
{
LinkNode temp=head;
for(int i=1;i<=index;i++){
if(i==index)
break;
if(temp!=null)
{
temp=temp.next;
}else
break;
}
return temp;
}
public void add(LinkNode e)//添加节点e
{
LinkNode l=last;
last=e;
if(l!=null){
l.next=e;
e.prev=l;
}else
head=e;
}
public void delete(LinkNode e)//删除节点
{
if(e.prev==null){
head=e.next;
}else
{
e.prev.next=e.next;
e.prev=null;
}
if(e.next==null)
{
last=e.prev;
}else
{
e.next.prev=e.prev;
e.next=null;
}
}
public void insertNodeAfter(LinkNode pos,LinkNode insertLinkNode)
{
LinkNode _next=pos.next;
pos.next=insertLinkNode;
insertLinkNode.next=_next;
insertLinkNode.prev=pos;
if(_next!=null)
_next.prev=insertLinkNode;
}
}