代码如下:
public class List {
public int [] array;
public int usedSize;
public List() {
this.array=new int [10];
this.usedSize=0; //usedSize的值如何确定?
int array[]= {2,3,8,10,4};
}
public void display() { //打印顺序表中的元素
for(int i=0;i<this.usedSize;i++) {
System.out.printf(this.array[i]+" ");
}
}
public int add(int pos,int data) { //在顺序表中插入一个元素
//这里添加一个判断数组是否为空的
if(pos<0||pos>this.usedSize-1)
return -1; //当出现超出情况时如何扩容?
else {
for(int i=this.usedSize-1;i>=pos;i--) {
this.array[i+1]=this.array[i];
}
this.array[pos]=data;
this.usedSize++; //这里usedSize需要this吗?(我觉的需要,不然它表示的是类中声明的变量)
return 0;
}
}
public boolean contains(int tofind) { //判断某个数值是否在顺序表中
int count=0; //好像不需要这个count
for(int i =0;i<this.usedSize;i++) {
if(this.array[i]==tofind)
count=1;
}
if(count==1)
return true;
else
return false;
}
public int search(int tofind) { //找出指定数值的下表
int count=-1; //如何让代码不要count
for(int i=0;i<this.usedSize-1;i++) {
if(this.array[i]==tofind)
count=i;
}
if(count==-1)
return -1;
else
return count;
}
public int getpos(int pos) { //打印指定位置的元素数值
if(pos<0||pos>=this.usedSize) {
System.out.printf("pos不存在");
return -1;
}
else{
return this.array[pos]; //这个地方好像少个打印操作
}
}
public void setPos(int pos,int value) { //修改某个位置的值
if(pos<0||pos>=this.usedSize)
System.out.printf("pos值不存在!");
else {
this.array[pos]=value;
}
}
public void remove(int toRemove) { //删除指定位置的值
int idenx=this.search(toRemove);
if(idenx==-1)
System.out.printf("数值错误");
else {
for(int i=idenx;i<usedSize-1;i++)
this.array[i]=this.array[i+1];
this.usedSize--;
}
}
public int size() { //打印出顺序表长度
return this.usedSize; //我觉的有毛病,哈哈。这里好像也少个打印操作
}
public void clear() { //清除顺序表
this.usedSize=0;
}
public static void mian(String[] args) {
List list=new List();
list.display();
list.add(7, 100);
list.contains(17);
list.search(10);
list.getpos(3);
}
}
代码可能有点问题,后期会修改的,哈哈哈。
加油!我要进字节!