public class DoubleList<T>//泛型(类、接口、方法
{
///////////////////////构造链表结构
protected Node head;//头指针
protected Node rear;//尾指针
protected int sum;//数目
//////////////////////初始化链表
public DoubleList()
{
head=new Node();//创建头结点,不能是null类型的;
rear=new Node();//创建尾结点,不能是null类型的;
head.next=rear;
rear.pre=head;
//sum=0;//错误
}
//////////////////在某个位置插入对象;
public boolean insert(int pos,T no)
{
if(pos>sum||pos<=0)
{
System.out.println("Can not do the change");
return false;
}
Node p=head;
for(int i=0;i<pos-1;i++)
{
p=p.next;
}
Node p1=p.next;
//新建结点插入数据;
Node newnode=new Node();
newnode.value=no;
newnode.pre=p;
newnode.next=p1;
p1.pre=newnode;
p.next=newnode;
sum+=1;
return true;
}
/////////////////////在链表的最后插入对象
public boolean insertEnd(T no)
{
Node newnode=new Node();
newnode.value=no;
newnode.pre=rear.pre;
newnode.next=rear;
rear.pre.next=newnode;
rear.pre=newnode;
sum+=1;
return true;
}
/////////////////////在某个位置删除对象
public boolean delete(int pos)
{
if(pos>sum||pos<=0)
{
System.out.println("Can not do the change");
return false;
}