顺序表(java版).doc_第1页
顺序表(java版).doc_第2页
顺序表(java版).doc_第3页
顺序表(java版).doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第 5 页 共 5 页/线性表的抽象数据类型定义public interface ListIntfpublic int size(); /返回表长度public void clear(); /重置为空表public boolean isEmpty(); /若为空表返回true,否则返回falsepublic Object get(int i); /返回第i个数据元素(返回类型可不同)public int indexOf(Object obj); /第1个与obj满足关系equals()的数据元素位序,这样的数据元素不存在,则返回值为-1(obj的数据类型根据实际不同)public Object getPre(Object obj); /若obj是表中的元素,返回它的前驱public Object getNext(Object obj); /若obj是表中的元素,返回它的后继public void insertElementAt(Object obj,int i); /在第i个位置之前插入新的数据元素obj,表长度加1public Object remove(int i); /删除第i个数据元素,并返回其值,表长减1public Object remove(Object obj); /删除数据元素obj,并返回其值,表长减1public class SqList implements ListIntf public static final int MAXSIZE=100; /线性表最大长度Object elem=new ObjectMAXSIZE; /存放线性表元素的数组private int len=0; /线性表的长度,初值为0/取得表最大长度public int getMAXSIZE()return MAXSIZE;/* * 实现接口方法 */Override重置表为空表public void clear() len=0; /设置表长为0/Override返回第i个数据元素的值(返回类型可不同)public Object get(int i) if(len=0)return null; /表空,查找失败if(ilen)return null; /查找位置不合法,查找失败return elemi-1; /查找成功/Override若obj是表中的元素,返回它的后继public Object getNext(Object obj) int i=indexOf(obj);if(i=-1)return null; /指定元素不存在else if(i=len)return null; /指定元素位于最后一位,不存在后继元素return elemi; /查找后继成功,返回后继/Override若obj是表中的元素,返回它的前驱public Object getPre(Object obj) int i=indexOf(obj);if(i=-1)return null; /指定元素不存在else if(i=1)return null; /指定元素位于第一位,不存在前驱元素return elemi-2; /查找前驱成功,返回前驱 /Override第1个与obj满足关系equals()的数据元素的位序,若这样的数据元素不存在,则返回值为-1(obj的类型根据实际不同)public int indexOf(Object obj) for(int i=0;ilen;i+)if(elemi.equals(obj)return i+1; /查找成功,返回位序return -1; /查找失败/Override在第i个位置之前插入新的数据元素obj,表长度加1public void insertElementAt(Object obj, int i) if(len=MAXSIZE) /判断线性表的存储空间是否已满System.out.println(-溢出-);return;else if(ilen+1)System.out.println(-插入位置非法-);return; /插入位置非法for(int j=len-1;j=i-1;j-)elemj+1=elemj;elemi-1=obj; /插入元素len+; /表长加1return;/Override若为空表,则返回true,否则返回falsepublic boolean isEmpty() if(len=0)return true; /表空,返回truereturn false; /表非空,返回false/Override删除第i个数据元素,并返回其值,表长度减1public Object remove(int i) Object obj;if(ilen)System.out.println(-删除位置非法-);return null;obj=elemi-1; /被删除的值for(int j=i-1;j表中元素);for(int i=0;ilen;i+)System.out.println(elemi.toString();import java.util.*;public class SqListTest /* * param args */public static void main(String args) System.out.println(=Begin=);System.out.println(-构造顺序表-);Object obj;int n;Scanner input=new Scanner(System.in);SqList sl=new SqList();System.out.println(表长:+sl.size();/构造5个元素的顺序表for(int i=0;i5;i+)System.out.print(输入元素:);obj=input.next();sl.insertElementAt(obj, sl.size()+1);System.out.println(表长:+sl.size();sl.printList();System.out.println(-增加元素-);System.out.print(元素:);obj=input.next();System.out.print(位置:);n=Integer.parseInt(input.next();sl.insertElementAt(obj, n);System.out.println(表长:+sl.size();sl.printList();System.out.println(-查找元素-);System.out.print(元素:);obj=input.next();n=sl.indexOf(obj);if(n!=-1)System.out.println(.元素+obj+位于第+n+位.);System.out.print(位置:);n=Integer.parseInt(input.next();obj=sl.get(n);if(obj!=null)System.out.println(.第+n+位元素为+obj+.);System.out.println(-删除元素-);System.out.print(位置:);n=Integer.parseInt(input.next();obj=sl.remove(n);if(obj!=null)System.out.println(.删除的元素为+obj+.);System.out.println(表长:+sl.size();sl.printList();System.out.print(元素:);obj=input.next()

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论