java 实现顺序表结构

mac2022-08-06  18

通过java实现顺序表 1.接口

package com.listArray.inter; public interface List { public boolean isEmpty(); public void insert(int index,Object element) throws Exception; public Object remove (int i) throws Exception; public Object getData(int i) throws Exception; public int length(); public int getLocal(Object x) throws Exception; }

2.顺序表基本方法的实现

package com.listArray.util; import com.listArray.inter.List; public class SeqListObject implements List { //顺序表的默认长度,初始化顺序表没有指定长度时使用 final int defalutSize=10; //记录当前线性表的实际长度,初始值为0 private int size=0; //顺序表的最大长度 int maxSize=20; //定义对象数组 listArray private Object[] listArray; //获取顺序表有效长度 public int getSize() { return size; } //无参构造,默认初始化 defalutSize=10 public SeqListObject() { initiate(defalutSize); } //有参构造,自定义最大长度 public SeqListObject(int capacity) { initiate(capacity); } //初始化函数 public void initiate(int sz) { maxSize =sz; size=0; listArray =new Object[sz]; } //判断顺序表是否为空 @Override public boolean isEmpty() { // TODO Auto-generated method stub return this.size==0; } //插入方法 @Override public void insert(int index, Object element) throws Exception { // TODO Auto-generated method stub if(size == maxSize) { throw new Exception("顺序表已满无法插入!"); } if(index<0||index>size) { throw new Exception("参数错误!"); } for(int j = size; j>index;j--) { listArray[j]=listArray[j-1]; } listArray[index]=element; size++; } //删除方法 @Override public Object remove(int i) throws Exception { // TODO Auto-generated method stub if(size == 0) { throw new Exception("顺序表已空无法删除"); } if(i<0||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; } //获取i位置数值 @Override public Object getData(int i) throws Exception { // TODO Auto-generated method stub return listArray[i]; } //获取顺序表有效长度 @Override public int length() { // TODO Auto-generated method stub return size; } //查找算法的实现 @Override public int getLocal(Object x) throws Exception { // TODO Auto-generated method stub int index=-1; for(int i=0;i<=size-1;i++) { if(x.equals(listArray[i])) { index=i; break; } } return index; } }

3.测试方法及主函数

package com.listArray; import com.listArray.util.SeqListObject; public class test { public static void main(String[] args) { // TODO Auto-generated method stub SeqListObject seqList =new SeqListObject(100);//实现构造方法,初始化顺序表,定义一个最大长度为100的线性表 int n=10; try { //插入方法 for(int i=0;i<n;i++) { seqList.insert(i, new Integer(i+1)); } //查找方法 System.out.println("数值为4的位置为:"+seqList.getLocal(4)); //删除方法 seqList.remove(4); //返回顺序表中的i位置的数据元素 for(int i=0;i<seqList.getSize();i++) { System.out.println(seqList.getData(i)+" "); } }catch(Exception e){ //打印异常信息 System.out.println(e.getMessage()); } } }
最新回复(0)