定义顺序表接口:
public interface OrderTable {
//返回顺序表的长度
public int size();
//判断顺序表是否为空
public boolean isEmpty();
//判断顺序表是否为满
public boolean isFull();
//向顺序表中加元素x
public void add(String x);
//在顺序表中n位置插入一个元素x
public void insert(int n,String x);
//删除第n个元素
public void delete(int n);
//查找第n个元素
public String find(int n);
//修改第n个元素为x
public void modify(int n,String x);
//打印全部元素
public void print();
}
实现顺序表接口的基本方法类:
/**
* 顺序表的简单实现
*
* @date:2019-2-7
* @author Linging
*
*/
public class Order implements OrderTable{
private String data[];
private int maxSize = 100; //顺序表最大空间
private int length = 0; //顺序表元素个数
public Order(){
length = 0;
data = new String[maxSize];
}
@Override
public int size() {
// TODO Auto-generated method stub
return length;
}
@Override
public boolean isEmpty() {
// TODO Auto-generated method stub
//空返回true,不空返回false
if(length == 0)
return true;
return false;
}
@Override
public boolean isFull() {
// TODO Auto-generated method stub
//满返回true,不满返回false
if(length == maxSize-1)
return true;
return false;
}
@Override
public void add(String x) {
// TODO Auto-generated method stub
data[length] = x;
length++;
}
@Override
public void delete(int n) {
// TODO Auto-generated method stub
for( int i = n-1 ; i < length-1 ; i++) {
data[i] = data[i+1];
}
length--;
}
@Override
public String find(int n) {
// TODO Auto-generated method stub
return data[n-1];
}
@Override
public void modify(int n, String x) {
// TODO Auto-generated method stub
data[n-1] = x;
}
@Override
public void print() {
// TODO Auto-generated method stub
for( int i = 0 ; i < length ; i++ ) {
System.out.print(data[i]+" ");
}
System.out.println();
}
@Override
public void insert(int n, String x) {
// TODO Auto-generated method stub
if(!isFull() && ( n>=0 && n <= length+1 )) {
for( int i = length ; i >= n ; i-- ) {
data[i] = data[i-1];
}
data[n-1] = x; length++;
}
}
public static void main(String[] args) {
Order or = new Order();
or.add("1");
or.add("2");
or.add("3");
or.add("4");
or.add("5");
or.print();
}
}