您的位置:首页 > 理论基础 > 数据结构算法

数据结构JAVA实现线性表之顺序表

2014-11-25 22:50 489 查看
线性表是数据结构中最最基本的结构类型。顺序表则是把线性表的节点按逻辑顺序一次存放在一组地址连续的存储单元里。

以下是用java数组实现的顺序表,实现表的插入删除操作,和表元素的获取、表长度获取、判断表是否为空,几个功能。

定义一个接口,规定线性表的基本操作

public interface MylistInterface {

// 插入
public void insert(int i, Object elememt);
// 删除
public void delete(int i);
// 找到第N个
public Object getElement(int i);
// 得到线性表长度
public int size();
// 是否为空
public boolean isEmpty();
}

下面是线性表的实现类

public class MyList implements MylistInterface {
// 存储线性表元素
private Object[] listArray;
// 线性表最大长度
private int maxSize;
// 线性表当前长度
private int size;
// 构造方法初始化线性表
public MyList() {
this.maxSize = 50; //默认长度为50
this.size  = 0;
this.listArray = new Object[maxSize];
}

@Override
public void insert(int i, Object elememt) {
// 判断i是否合法
if(size==this.maxSize){
System.out.println("线性表已满!");
}else if(i<0 i="">this.maxSize){
System.out.println("i的值不合法!");
}else{
// 将i后面的元素依次后移一位
for(int j=size; j>i; j--){
this.listArray[j] = this.listArray[j-1];
}
this.listArray[i]= elememt;
size ++;
}
}

@Override
public void delete(int i) {

if(0==this.size){
System.out.println("此线性表已为空!");
}else if(i<0 i="">=this.size){
System.out.println("i值不合法!");
}else{
for(int j=size-1; j>=i; j--){
this.listArray[j-1] = this.listArray[j];
}
size--;
}
}

@Override
public Object getElement(int i) {
if(0 == this.size){
System.out.println("线性表为空!");
}else if(i<0 i="">=this.size){
System.out.println("i值不合法!");
}else{
return this.listArray[i];
}
return null;
}

@Override
public int size() {
return this.size;
}

@Override
public boolean isEmpty() {
if(size>0){
return false;
}
return true;
}
}
<!--0--><!--0--><!--0-->
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息