数据结构实验报告-实验:1线性表的顺序存储和操作实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据结构实验报告-实验:1线性表的顺序存储和操作实现

信息管理学院专业课实验报告

上机日期:2016 年 3 月18日上机地点与机号:Sc614 指导教师:李爱军

班级: 2014级信息一班学号: 201408010127 上机人:王坚

一、实验名称:线性表的顺序存储和操作实现

二、上机目的:

通过JA V A进行顺序存储线性表操作

三、上机内容:

通过Sequencelist类实现List接口实现顺序存储线性表的功能t

四、程序清单与测试数据:(可附页)

public class chap3_1 {

public static void main(String[] args) {

// TODO自动生成的方法存根

List list1=new sequenceList(10);

int[] a={20,16,38,42,29};

for(int i=0;i

int n1=(Integer)list1.remove(2);

list1.add(80, 3);

int n2=(Integer)list1.value(4);

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();

System.out.println();

list2.preOrder();

System.out.println("线性表list2长度:"+list2.size());

}

}

public interface List {

Object value(int pos);

boolean add(Object obj,int pos);

Object remove(int pos);

int find(Object obj,int pos);

boolean modify(Object obj,int pos);

boolean isEmpty();

int size();

void nextOrder();

void preOrder();

void clear();

List sort();

}

public class sequenceList implements List {

final int maxSize=10;

private int length;

private Object[] listArray;

public sequenceList(){ //无参数的构造函数的定义

length=0; //线性表初始为空,即长度为0

listArray=new Object[maxSize];//数组初始长度为maxSize的值为10 }

public sequenceList(int n){//带初始长度参数的构造函数的定义if(n<=0){

System.out.println("数组长度要大于0,否则退出程序运行");

System.exit(1);

}

length=0;//线性表的初始长度为0

listArray=new Object[n];//数组的初始长度为n的值

}

public Object value(int pos){//返回线性表中第

if(pos<1||pos>length){

System.out.println("参数pos的值不合法,无法得到元素!");

return null;

}

return listArray[pos-1];

}

public boolean add(Object obj,int pos){

if(pos<1||pos>length+1){

System.out.println("参数pos的值不合法,无法插入元素!");

return false;

}

if(length==listArray.length){

Object[] p=new Object[length*2];

for(int i=0;i

listArray=p;

}

for(int i=length;i>=pos;i--)

listArray[i]=listArray[i-1];

listArray[pos-1]=obj;

length++;

return true;

}

public Object remove(int pos){

if(pos<1||pos>length){

System.out.println("参数pos的值不合法,无法删除元素!");

return null;

}

Object x=listArray[pos-1];

for(int i=pos;i<=length-1;i++)

listArray[i-1]=listArray[i];

length--;

return x;

}

public int find(Object obj,int pos){

if(pos<1||pos>length);{

System.out.println("参数pos的值不合法,无法查找元素!");

System.exit(1);

}

for(int i=pos-1;i

if(listArray[i].equals(obj)) return i+1;

return -1;

}

public boolean modify(Object obj,int pos){

if(pos<1||pos>length){

System.out.println("参数pos的值不合法,无法修改元素!");

return false;

}

listArray[pos-1]=obj;

return true;

}

public boolean isEmpty(){

return length==0;

}

public int size(){

return length;

}

public void nextOrder(){

for(int i=0;i

System.out.println(listArray[i].toString());

}

public void preOrder(){

for(int i=length-1;i>=0;i--)

System.out.println(listArray[i].toString());

}

public void clear(){

length=0;

}

public List sort(){

sequenceList list;

list=new sequenceList(length);

list.length=length;

for(int i=0;i

list.listArray[i]=listArray[i];

int i,j;

Comparable x,y;

for(i=1;i

x=(Comparable)list.listArray[i];

for(j=i-1;j>=0;j--){

y=(Comparable)list.listArray[j];

if(pareTo(y)<0)

相关文档
最新文档