通过查找资料,再加上我的理解,初步建立了顺序表,可以实现的功能有:查值、取值、插入、删除。

1、建立一个接口,接口中存放你所希望的顺序表所实现的功能。

public interface List1 {
	//线性表接口List给出了任何实现线性表功能的类中必须要实现的成员函数原型
	public int find(Object i) throws Exception;//查找
	public Object getvalue(int i) throws Exception;//取值
	public void insert(int i,Object value) throws Exception;//插入
	public void delete(int i) throws Exception;//删除
}

2、建立一个顺序表类。
查值:查值是通过输入的一个数据,通过对顺序表的遍历得到在该顺序表中是否存在给定的数据(缺点是查找大量数据时,速度较慢)。
取值:取值是通过输入的一个在顺序表中的位置,通过对顺序表的遍历得到在该位置的值(缺点是查找大量数据时,速度较慢)。
删除:将顺序表中该位置上的数据删除(缺点是会导致顺序表有个空位,浪费空间)。
插入:插入的前提应是顺序表中有位置,若没有位置则抛出异常。

public class SequenceList implements List1 {
	Object[] sList;
	private int maxsize;
	private int size;
	
	//初始化
	public SequenceList(Object[] obj) {
		maxsize=obj.length;
		sList=obj;
		size=maxsize;
	}
	
	//插入
	@Override//重写(覆盖)了一个方法,以实现不同的功能
	public void insert(int i,Object value)throws Exception {
		if(maxsize==size)
			throw new Exception("顺序表已满,无法插入数据");
		if(maxsize==0)
			throw new Exception("顺序表为空");
		if(i<0||i>=maxsize)
			throw new Exception("你输入的数据错误");
		Object[] middle;
		middle=sList;
		sList[i]=value;
		for(int j=i+1;j<maxsize;j++)
		{
			sList[j]=middle[j-1];
		}
		
	}
	
	//删除
	@Override//重写(覆盖)了一个方法,以实现不同的功能
	public void delete(int i)  throws Exception{
		if(maxsize==0)
			throw new Exception("顺序表为空");
		if(i<0||i>=maxsize)
			throw new Exception("你输入的数据错误");
		for(int j=i;j<maxsize;j++)
		{
			sList[j-1]=sList[j];
		}
		size--;
	}
	
	//查值
	@Override//重写(覆盖)了一个方法,以实现不同的功能
	public int find(Object i) throws Exception{
		if(maxsize==0)
			throw new Exception("顺序表为空");
		int value=0;//保存查找到的位置
		for(int j=0;j<maxsize;j++){
			if(i.equals(sList[j])){
				value=j+1;
				break;
			}
			else
				value=0;
		}
		return value;
	}

	//取值
	@Override//重写(覆盖)了一个方法,以实现不同的功能
	public Object getvalue(int i) throws Exception {
		if(maxsize==0)
			throw new Exception("顺序表为空");
		if(i<0||i>=maxsize)
			throw new Exception("你输入的数据错误");
		Object value;//保存查找到的值
		value=sList[i-1];
		return value;
	}	
}

3、顺序表中功能的使用。

import java.util.Scanner;
//List中存放的是顺序表的接口
//SequenceList中存放的是顺序表类
//User1是顺序表的使用
public class User1 {
	public static void main(String[] args) throws Exception{
		System.out.print("输入表:");
		Scanner sc=new Scanner(System.in);
		String str;
		String[] st=new String[4] ;
		for(int i=0;i<4;i++) {
			str=sc.nextLine();
			st[i]=str;
		}
		sc.close();
		SequenceList a=new SequenceList(st);
		int len=a.sList.length;
		for(int i=0;i<len;i++) {
			System.out.println(i+"  "+a.sList[i]);
		}
		System.out.println();
		
		int jj;
		//查找功能
		String b="心";
		int f=a.find(b);//存放查找到在顺序表中的位置
		if(f==0)
			System.out.println("未查找到!");
		else
			System.out.println("在顺序表中的位置:"+f);
		System.out.println();
		
		//取值功能
		jj=2;
		System.out.println("顺序表的第"+jj+"位是:"+a.getvalue(jj));//输出查找结果
		System.out.println();
		
		//删除功能
		jj=2;
		a.delete(jj);//删除
		System.out.println("删除后的顺序表:");
		for(int i=0;i<len-1;i++) {
			System.out.println(i+"  "+a.sList[i]);
		}
		System.out.println();
		
		//插入功能
		jj=3;
		String value="成功了!!!";
		a.insert(jj,value);
		System.out.println("插入后的顺序表:");
		for(int i=0;i<len;i++) {
			System.out.println(i+"  "+a.sList[i]);
		}		
	}
}