验证中...
语言: Java
分类: 其他
最后更新于 2018-04-16 23:00
线性表
原始数据 复制代码
package a;
public class Test {
}
/**
* 线性表接口
* @author
*
*/
interface List{
//在指定下标位置插入数据元素
public void insert(int i,Object obj) throws Exception;
//删除指定下标位置数据元素
public Object delete(int i) throws Exception;
//替换指定下标位置数据元素
public void update(int i,Object obj) throws Exception;
//获取指定下标位置数据元素
public Object getData(int i) throws Exception;
//获取线性表数据元素个数
public int size();
//判断线性表是否为空
public boolean isEmpty();
}
class SeqList implements List{
final int defaultSize=10;//默认线性表长度
int maxSize; //线性表长度
int size; //线性表中现有元素个数
Object [] listArray;//用对象数组存储线性表
/**
* 无参构造
*
*/
SeqList(){
initiate(defaultSize);
}
/**
* 带线性表长度的有参构造方法
* @param size
*/
SeqList(int size) {
initiate(size);
}
/**
* 初始化方法,设置线性表长度、现有元素个数、初始化对象数组
* @param sz
*/
public void initiate(int sz){
maxSize=sz;
size=0;
listArray=new Object[sz];
}
/**
* 实现在指定下标位置删除数据元素
*/
public Object delete(int i) throws Exception {
if(size==0){
throw new Exception("线性表已空,无法删除");
}
if(i>size-1){
throw new Exception("删除下标位置错误");
}
Object it=listArray[i];
for(int j=i;j>size-1;j++){
listArray[j]=listArray[j+1];
}
size --;
return it;
}
/**
* 实现获取指定下标位置数据元素
*/
public Object getData(int i) throws Exception {
if(size==0){
throw new Exception("线性表已空,无法获取");
}
if(i>size-1){
throw new Exception("获取下标位置错误");
}
return listArray[i];
}
/**
* 实现在指定下标位置插入数据元素
*/
public void insert(int i, Object obj) throws Exception {
if(size==maxSize){
throw new Exception("线性表已满,无法插入");
}
if(i>size){
throw new Exception("插入下标位置错误");
}
for(int j=size;j>i;j--){
listArray[j]=listArray[j-1];
}
listArray[i]=obj;
size ++;
}
/**
* 实现判断线性表是否为空
*/
public boolean isEmpty() {
return size==0;
}
/**获取线性表数据元素个数
* 实现
*/
public int size() {
return size;
}
/**
* 实现替换指定下标位置数据元素
*/
public void update(int i, Object obj) throws Exception {
if(size==0){
throw new Exception("线性表已空,无法替换");
}
if(i>size-1){
throw new Exception("替换下标位置错误");
}
listArray[i]=obj;
}
}

评论列表( 0 )

你可以在登录后,发表评论

搜索帮助