顺序表 -- JAVA实现

顺序表是以数组形式存储的线性表。




建立顺序表


接口类 IFList

public interface IFList {
	//是否为空
	public boolean isEmpty();
	//返回顺序表长度
	public int getLen();
	//顺序表插入元素
	public void insert(int index,Object obj)throws Exception;
	//顺序表删除元素
	public Object delete(int index)throws Exception;
	//顺序表查找元素的位置
	public int selectIndex(Object []obj)throws Exception;
	//顺序表查找位置的元素
	public Object selectValue(int index)throws Exception;
}


顺序表类继承IFList

实现各种方法

public class MySqList implements IFList {
	//数组长度
	private int lensize;
	//当前长度
	private int len;
	//对象数组
	private Object[] MySqList;
	
	MySqList() {
		// TODO Auto-generated constructor stub
		this(100);
	}
	
	MySqList(int len)
	{
		lensize = len;
		this.len = 0;
		MySqList = new Object[len];
	}
	
	public boolean isEmpty() {
		return len==0;
	}
	
	@Override
	public int getLen() {
		// TODO Auto-generated method stub
		return len;
	}

	@Override
	public void insert(int index,Object obj)throws Exception {
		// TODO Auto-generated method stub
		
		if( index < 0 || index > len ) {
			throw new Exception("index位置不存在");
		}
		for(int i = len;i>=index;i--) {
			MySqList[i+i] = MySqList[i]; 
		}
		MySqList[index] = obj;
		len++;
	}

	@Override
	public Object delete(int index)throws Exception {
		// TODO Auto-generated method stub
		if( index<0 || index>len )
		{
			throw new Exception("无操作对象");
		}
		Object obj = MySqList[index];
		for(int i = index; i<=len;i++)
		{
			MySqList[i] = MySqList[i+1];
		}
		
		return obj;
	}

	public int selectIndex(Object obj)throws Exception {
		// TODO Auto-generated method stub
		for(int i=0;i<len;i++)
		{
			if(obj==MySqList[i]) {
				return i;
			}
		}
		throw new Exception("该顺序表中无此元素");
	}
		
	@Override
	public Object selectValue(int index)throws Exception {
		// TODO Auto-generated method stub
		if(index<0 || index>len) {
			throw new Exception("该位置没有元素");
		}
		
		return MySqList[index];
	}
	
}


实现代码

public class SQList {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
			MySqList list = new MySqList(100);
			for(int i = 0;i<50;i++) {
				try {
					list.insert(i, new Integer(i));
				} catch (Exception e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
			for(int i = 0;i<50;i++) {
				try {
					System.out.print(list.selectValue(i)+" ");
				} catch (Exception e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
	}

}





阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xnh_565175944/article/details/79945106
文章标签: java 数据结构
个人分类: 数据结构 JAVA
上一篇JFrame的用法
下一篇1059. C语言竞赛(20)
想对作者说点什么? 我来说一句

java实现顺序表数据结构

2010年04月06日 3KB 下载

没有更多推荐了,返回首页

关闭
关闭