顺序线性表 代码实现(基于java)

来源:互联网 发布:苹果软件商店打不开 编辑:程序博客网 时间:2024/06/18 13:00
package dataStruct;


public class MyList<T>
{
private Object element[];
private int len=0;
public MyList()
{
this(64);
}
public MyList(int size)
{
this.element=new Object[size];
}

public int Length()
{
return this.len;
}

public boolean isEmpty()
{
if(len==0)
return true;
else
return false;
}
public T getElem(int index)
{
if(0<=index&&index<=this.len-1)
return (T)this.element[index];
else if(index<0||index>=this.len)
throw new ArrayIndexOutOfBoundsException();
return null;
}
public boolean set(int index,T t)
{
if(index>=0&&index<=this.len-1)
{
if(t==null)
return false;
else 
{
this.element[index]=t;
return true;
}
}
else
throw new ArrayIndexOutOfBoundsException();
}

public boolean insert(int index,T t)
{
if(t==null)
{
return false;
}
if(len==this.element.length)
{
Object[] temp=this.element;
this.element=new Object[this.len*2];
for(int i=0;i<len;i++)
{
this.element[i]=temp[i];
}
}
if(index<0)
{
throw new ArrayIndexOutOfBoundsException();
}
for(int i=this.len-1;i>=index;i--)
{
this.element[i+1]=this.element[i];
}
this.element[index]=t;
len++;
return true;
}

public T remove(int index)
{
if(this.len==0||index<0||index>=this.len)
throw new ArrayIndexOutOfBoundsException();
T old=(T)this.element[index];
for(int i=index;i<this.len-1;i++)
{
this.element[i]=this.element[i+1];
}
this.element[index+1]=null;
this.len--;
return old;
}

public void removeAll()
{
this.len=0;
}

public boolean append(T x)
{
if(x==null)
return false;
else 
{
insert(this.len, x);
}
return true;
}
}
原创粉丝点击