问题描述:
利用java语言简单实现线性表(数组实现)
代码如下:
线性表接口定义如下:
public interface Xlistinterface {
void add(Object element);//增加元素
void delete(int index);//删除元素
void delete(Object element);
boolean check(Object element);//查找元素
int at(Object element);//查找元素下标
void update(int index,Object element);//修改元素
}
具体实现代码如下:
import java.util.Arrays;
public class Xlist implements Xlistinterface{//线性表(数组实现)
private Object object[];//建立数组
private int size=0;//长度
private int capacity=10;//容量
public Xlist(int capacity) {//构造器 有参
this.capacity = capacity;
object=new Object[capacity];
}
public Xlist() {//无参构造器
object=new Object[capacity];
}
@Override
public String toString() {
return Arrays.toString(object);
}
@Override
public void add(Object element) {
if (size==capacity) {//扩容 防止容量不够
capacity *= 2;
Object []newobject=new Object[capacity];
for (int i = 0; i <size; i++) {//复制元素组
newobject[i]=object[i];
}
object=newobject;
}
object[size++]=element;
}
@Override
public void delete(int index) {//删除指定下标的元素
for (int i = index+1; i <size ; i++) {
object[i-1]=object[i];//将数组中的元素向前移动
}
size--;//数组的长度减一
}
@Override
public void delete(Object element) {//删除指定的元素
int index=at(element);
delete(index);
}
@Override
public boolean check(Object element) {//查找元素是否存在
for (int i = 0; i <size ; i++) {
if (object[i].equals(element))
return true;
}
return false;
}
@Override
public int at(Object element) {//查找元素下标
for (int i = 0; i <size ; i++) {
if (object[i].equals(element))
return i;
}
return -1;
}
@Override
public void update(int index, Object element) {//修改元素
object[index]=element;
}
}
可以建立相应的测试用例进行测试链表代码。