今天看了线性表,顺便自己手打了个线性表
IMyTest.java
package Test;
public interface IMyList {
//清除线性表
public void clear();
//判断线性表是否为空
public boolean isEmpty();
//线性表长度
public int length();
//指定位置的值
public Object get(int i) throws Exception;
//指定位置插入值
public void insert(int i,Object x);
//显示线性表所有内容
public void display();
}
MyList.java
package Test;
public class MyList implements IMyList{
//实际存储的地方
Object s[]=null;
//数组的长度
int maxLength=0;
//初始化构造器
MyList()
{
//初始话实际存储地方
s= new Object[10];
maxLength=0;
}
//初始化
private void initS()
{
if(maxLength<s.length)
return ;
else if(maxLength==s.length)
{
Object newS[] = new Object[s.length*2+1];
for(int i=0;i<s.length;i++)
{
newS[i]=s[i];
}
s=newS;
}
}
@Override
public void clear() {
// TODO Auto-generated method stub
s= new Object[10];
maxLength=0;
}
@Override
public boolean isEmpty() {
// TODO Auto-generated method stub
//为0则true,不为则false
if(maxLength!=0)
return false;
else
return true;
}
@Override
public int length() {
// TODO Auto-generated method stub
return maxLength;
}
@Override
public Object get(int i) throws Exception {
// TODO Auto-generated method stub
return s[i];
}
public void insert(Object x)
{
initS();
s[maxLength]=x;
maxLength++;
}
@Override
public void insert(int i, Object x) {
// TODO Auto-generated method stub
initS();
for(int k=maxLength;k>=i;k++)
{
s[k+1]=s[k];
}
s[i]=x;
maxLength++;
}
@Override
public int indexOf() {
// TODO Auto-generated method stub
return 0;
}
@Override
public void display() {
// TODO Auto-generated method stub
for(int i=0;i<s.length;i++)
{
System.out.println(" i:"+s[i]);
}
}
}