- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验二 Java面向对象 实现线性表
实验二 Java面向对象 实现线性表
【实验目的】
一、掌握JAVA面向对象编程原理;
二、掌握JAVA中统一线性表的操作;
三、掌握JAVA接口的实现;
四、掌握JAVA泛型设计;
五、掌握JAVA异常处理。
【实验内容】
一、定义一个接口,统一线性表的操作;
二、用顺序表的实现该接口;
三、用链表实现该接口;
四、定义Iterator接口,在顺序表和链表中分别实现Iterator接口,实现对线性表的遍历;
五、增加泛型的实现;
六、自定义异常类处理异常。
【实验结果】
一、Iterator接口:
public interface IteratorT {
public boolean isEmpty();
public int Length();
public T Get(int i);
public void Set(int i,T x);
public int Locate(T x );
public void Insert(int i, T x);
public T Delete(int i);
public void PrintList();
}
二、顺序表:
public class SeqListT implements IteratorT {
private int length;
private T[] data;
public SeqList(int N){
if(N1)
throw new IllegalArgumentException(InitialN must be =1);
data=(T[]) new Object[N];
}
public SeqList(){
this(10);
}
public SeqList(IteratorT list){
this(list.Length());
for(int i=1;i=list.Length();i++)
this.Insert(i,list.Get(i));
}
public boolean isEmpty(){
return length==0;
}
public int Length() {
return length;
}
void checkIndex(int index) {
if (index = 0 || index length)
throw new IndexOutOfBoundsException(index = + index + size = + length);
}
public T Get(int i) {
checkIndex(i);
return data[i-1];
}
public void Set(int i, T x) {
checkIndex(i);
data[i-1]=x;
}
public int Locate(Object x) {
for(int i=0;ilength;i++)
if(data[i].equals(x))
return i+1;
return -1;
}
T[] ChangeSeqListLength(T[] data,int newlength){
T[] newSeqList = (T[]) new Object[newlength];
for(int i=0;ilength;i++)
newSeqList[i]=data[i];
return newSeqList;
}
public void Insert(int i, T x) {
if(i=0)
throw new IndexOutOfBoundsException(index=+i+length=+length);
if(length==data.length)
data=ChangeSeqListLength(data, 2*length);
for(int j=length-1;ji;j--)
data[j]=data[j-1];
data[i-1]=x;
length++;
}
public T Delete(int i) {
checkIndex(i);
T deleteX=data[i-1];
for(int j=i;jlength;j++)
data[j-1]=data[j];
length--;
return deleteX;
}
public void PrintList() {
for(int i=0
您可能关注的文档
- 浅析用电安全.doc
- 团日主持词.doc
- 毕业设计结构布置方案中的常见问题剖析.doc
- 毕业设计结构布置方案中的常见问题分析.doc
- 北电LH波分复用系统的维护心得.pdf
- 污水管道安装技术交底.doc
- 1200排水管技术、安全交底记录.doc
- 2.6其它天敌.ppt
- 求职简历 简历设计大赛一等奖作品 个性简历 酒店管理专业 菜谱简历.doc
- 兎と猫 井上红梅訳.doc
- 第18讲 第17课 西晋的短暂统一和北方各族的内迁.docx
- 第15讲 第14课 沟通中外文明的“丝绸之路”.docx
- 第13课时 中东 欧洲西部.doc
- 第17讲 第16 课三国鼎立.docx
- 第17讲 第16课 三国鼎立 带解析.docx
- 2024_2025年新教材高中历史课时检测9近代西方的法律与教化含解析新人教版选择性必修1.doc
- 2024_2025学年高二数学下学期期末备考试卷文含解析.docx
- 山西版2024高考政治一轮复习第二单元生产劳动与经营第5课时企业与劳动者教案.docx
- 第16讲 第15课 两汉的科技和文化 带解析.docx
- 第13课 宋元时期的科技与中外交通.docx
文档评论(0)