当前位置:
文档之家› 数据结构实验报告-实验:1线性表的顺序存储和操作实现
数据结构实验报告-实验:1线性表的顺序存储和操作实现
System.exit(1);
}
for(inti=pos-1;i<length;i++)
if(listArray[i].equals(obj))returni+1;
return-1;
}
publicbooleanmodify(Object obj,intpos){
if(pos<1||pos>length){
List sort();
}
publicclasssequenceListimplementsList {
finalintmaxSize=10;
privateintlength;
privateObject[]listArray;
publicsequenceList(){//无参数的构造函数的定义
length=0;//线性表初始为空,即长度为0
System.out.println();
list2.preOrder();
System.out.println("线性表list2长度:"+list2.size());
}
}
publicinterfaceList {
Object value(intpos);
booபைடு நூலகம்eanadd(Object obj,intpos);
int[] a={20,16,38,42,29};
for(inti=0;i<a.length;i++) list1.add(a[i], i+1);
intn1=(Integer)list1.remove(2);
list1.add(80, 3);
intn2=(Integer)list1.value(4);
if(length==listArray.length){
Object[] p=newObject[length*2];
for(inti=0;i<length;i++) p[i]=listArray[i];
listArray=p;
}
for(inti=length;i>=pos;i--)
listArray[i]=listArray[i-1];
list.listArray[j+1]=list.listArray[j];
elsebreak;
}
list.listArray[j+1]=x;
}
returnlist;
}
}
五、上机步骤、出现的问题及解决的方法:
输入List接口类
输入Sequencelist类实现List类
输入主类运行
实验中出现了以下错误
18错误原因是if条件语句后面多加了导致后面的判断永远为false修改后成功运行六上机结果结果分析与体会
信息管理学院专业课实验报告
上机日期:2016年3月18日上机地点与机号:Sc614指导教师:李爱军
班级: 2014级信息一班学号: 2上机人:王坚
一、实验名称:线性表的顺序存储和操作实现
二、上机目的:
}
length=0;//线性表的初始长度为0
listArray=newObject[n];//数组的初始长度为n的值
}
publicObject value(intpos){//返回线性表中第
if(pos<1||pos>length){
System.out.println("参数pos的值不合法,无法得到元素!");
listArray[pos-1]=obj;
length++;
returntrue;
}
publicObject remove(intpos){
if(pos<1||pos>length){
System.out.println("参数pos的值不合法,无法删除元素!");
returnnull;
}
Object x=listArray[pos-1];
}
publicvoidnextOrder(){
for(inti=0;i<length;i++)
System.out.println(listArray[i].toString());
}
publicvoidpreOrder(){
for(inti=length-1;i>=0;i--)
System.out.println(listArray[i].toString());
通过JAVA进行顺序存储线性表操作
三、上机内容:
通过Sequencelist类实现List接口实现顺序存储线性表的功能t
四、程序清单与测试数据:(可附页)
publicclasschap3_1 {
publicstaticvoidmain(String[] args) {
//TODO自动生成的方法存根
List list1=newsequenceList(10);
list1.modify(33, 4);
System.out.println("n1,n2="+n1+","+n2);
list1.nextOrder();
System.out.println("线性表list长度:"+list1.size());
List list2=list1.sort();
list2.nextOrder();
错误原因是If条件语句后面多加了“:”导致后面的判断永远为false
修改后成功运行
六、上机结果、结果分析与体会:
n1,n2=16,42
20
38
80
33
29
线性表list长度:5
20
29
33
38
80
80
38
33
29
20
线性表list2长度:5
体会:
上机操作切不可粗心大意
教师评语:
inti,j;
Comparablex,y;
for(i=1;i<list.length;i++){
x=(Comparable)list.listArray[i];
for(j=i-1;j>=0;j--){
y=(Comparable)list.listArray[j];
if(pareTo(y)<0)
Exception in thread "main"ng.ArrayIndexOutOfBoundsException: 5
at study3.sequenceList.sort(sequenceList.java:97)
at study3.chap3_1.main(chap3_1.java:18)
Object remove(intpos);
intfind(Object obj,intpos);
booleanmodify(Object obj,intpos);
booleanisEmpty();
intsize();
voidnextOrder();
voidpreOrder();
voidclear();
}
publicvoidclear(){
length=0;
}
publicList sort(){
sequenceList list;
list=newsequenceList(length);
list.length=length;
for(inti=0;i<length;i++)
list.listArray[i]=listArray[i];
for(inti=pos;i<=length-1;i++)
listArray[i-1]=listArray[i];
length--;
returnx;
}
publicintfind(Object obj,intpos){
if(pos<1||pos>length);{
System.out.println("参数pos的值不合法,无法查找元素!");
returnnull;
}
returnlistArray[pos-1];
}
publicbooleanadd(Object obj,intpos){
if(pos<1||pos>length+1){
System.out.println("参数pos的值不合法,无法插入元素!");
returnfalse;
}
System.out.println("参数pos的值不合法,无法修改元素!");
returnfalse;
}
listArray[pos-1]=obj;
returntrue;
}
publicbooleanisEmpty(){
returnlength==0;
}
publicintsize(){
returnlength;
listArray=newObject[maxSize];//数组初始长度为maxSize的值为10
}
publicsequenceList(intn){//带初始长度参数的构造函数的定义
if(n<=0){
System.out.println("数组长度要大于0,否则退出程序运行");
System.exit(1);