资源描述:
《顺序表(java版)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第5页共5页//线性表的抽象数据类型定义publicinterfaceListIntf{publicintsize();//返回表长度publicvoidclear();//重置为空表publicbooleanisEmpty();//若为空表返回true,否则返回falsepublicObjectget(inti);//返回第i个数据元素(返回类型可不同)publicintindexOf(Objectobj);//第1个与obj满足关系equals()的数据元素位序,这样的数据元素不存在,则返回值为-1(o
2、bj的数据类型根据实际不同)publicObjectgetPre(Objectobj);//若obj是表中的元素,返回它的前驱publicObjectgetNext(Objectobj);//若obj是表中的元素,返回它的后继publicvoidinsertElementAt(Objectobj,inti);//在第i个位置之前插入新的数据元素obj,表长度加1publicObjectremove(inti);//删除第i个数据元素,并返回其值,表长减1publicObjectremove(Objectob
3、j);//删除数据元素obj,并返回其值,表长减1}publicclassSqListimplementsListIntf{publicstaticfinalintMAXSIZE=100;//线性表最大长度Object[]elem=newObject[MAXSIZE];//存放线性表元素的数组privateintlen=0;//线性表的长度,初值为0//取得表最大长度publicintgetMAXSIZE(){returnMAXSIZE;}/***实现接口方法*///@Override重置表为空表publi
4、cvoidclear(){len=0;//设置表长为0}//@Override返回第i个数据元素的值(返回类型可不同)publicObjectget(inti){if(len==0)returnnull;//表空,查找失败if(i<1
5、
6、i>len)returnnull;//查找位置不合法,查找失败returnelem[i-1];//查找成功}//@Override若obj是表中的元素,返回它的后继yujmh第5页2021-8-4第5页共5页publicObjectgetNext(Objectobj){in
7、ti=indexOf(obj);if(i==-1)returnnull;//指定元素不存在elseif(i==len)returnnull;//指定元素位于最后一位,不存在后继元素returnelem[i];//查找后继成功,返回后继}//@Override若obj是表中的元素,返回它的前驱publicObjectgetPre(Objectobj){inti=indexOf(obj);if(i==-1)returnnull;//指定元素不存在elseif(i==1)returnnull;//指定元素位于第一
8、位,不存在前驱元素returnelem[i-2];//查找前驱成功,返回前驱}//@Override第1个与obj满足关系equals()的数据元素的位序,若这样的数据元素不存在,则返回值为-1(obj的类型根据实际不同)publicintindexOf(Objectobj){for(inti=0;i9、加1publicvoidinsertElementAt(Objectobj,inti){if(len==MAXSIZE){//判断线性表的存储空间是否已满System.out.println("--溢出--");return;}elseif(i<1
10、
11、i>len+1){System.out.println("--插入位置非法--");return;//插入位置非法}for(intj=len-1;j>=i-1;j--)elem[j+1]=elem[j];elem[i-1]=obj;//插入元素len++;//
12、表长加1return;yujmh第5页2021-8-4第5页共5页}//@Override若为空表,则返回true,否则返回falsepublicbooleanisEmpty(){if(len==0)returntrue;//表空,返回truereturnfalse;//表非空,返回false}//@Override删除第i个数据元素,并返回其值,表长度减1publicObjectremove(inti){Obj