数据结构(Java版)-线性表的实现与应用完整版

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

数据结构(Java版)-线性表的实现与应用完整版

实验报告

课程名称数据结构

实验项目线性表的实现及应用

实验仪器PC机一台

学院_____ 专业

班级/学号

姓名

实验日期

成绩

指导教师

北京信息科技大学

信息管理学院

(数据结构课程上机)实验报告

专业: 班级: 学号: 姓名: 成绩:

实验名称线性表的实现及应用实验地点实验时间

1.实验目的:

(1)理解用顺序表实现线性表的特点;熟练掌握顺序表的基本操作;学会利用顺序表解决实际应用问题。

(2)熟练掌握单链表的使用;理解用链表实现线性表的特点;了解链表的多种形式;学会利用单链表解决实际应用问题。

2.实验要求:

(1)学时为8学时;

(2)能在机器上正确、调试运行程序;

(3)本实验需提交实验报告;

(4)实验报告文件命名方法:数据结构实验_信管16xx_学号_姓名.doc。

3.实验内容和步骤:

第一部分顺序表的实现与应用

(1)基于顺序表实现线性表的以下基本操作:

public interface LList

{ //线性表接口,泛型参数T表示数据元素的数据类型

boolean isEmpty(); //判断线性表是否空

int size(); //返回线性表长度

T get(int i); //返回第i(i≥0)个元素

void set(int i, T x); //设置第i个元素值为x

void insert(int i, T x); //插入x作为第i个元素

void insert(T x); //在线性表最后插入x元素

T remove(int i); //删除第i个元素并返回被删除对象

int search(T key); //查找,返回首次出现的关键字为key的元素的位序void removeAll(); //删除线性表所有元素

public String toString();//返回顺序表所有元素的描述字符串,形式为“(,)”

}

要求:实现后应编写代码段对每个基本操作做测试。

(2)顺序表的简单应用

a)运用基本操作编写算法删除第i个开始的k个元素。

b)编写高效算法删除第i个开始的k个元素。

c)将两个顺序表合并为一个顺序表(表中元素有序);

d)若两个元素按值递增有序排列的顺序表A和B,且同一表中的元素

值各不相同。试构造一个顺序表C,其元素为A和B中元素的交集,且

表C中的元素也按值递增有序排列;

(3)利用顺序表解决约瑟夫环问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。要求:输出出列次序。

第二部分单链表的实现与应用

(4)基于单链表实现线性表的以下基本操作(不需要建立接口,直接建立带头结点的单链表类):

ADT List

{ boolean isEmpty(); //判断线性表是否空

int size(); //返回线性表长度

T get(int i); //返回第i(i≥0)个元素

void set(int i, T x); //设置第i个元素值为x

Node insert(int i, T x); //插入x作为第i个元素

Node insert(T x); //在线性表最后插入x元素

T remove(int i); //删除第i个元素并返回被删除对象

void removeAll(); //删除线性表所有元素

Node search(T key); //查找,返回首次出现的关键字为key元素

public String toString(); //返回顺序表所有元素的描述字符串,形式为“(,)”

}

要求:实现后应编写代码段对每个基本操作做测试。

(5)实现单链表的子类排序单链表,覆盖单链表如下方法:

void set(int i, T x); //设置第i个元素值为x

Node insert(int i, T x); //插入x作为第i个元素

Node insert(T x); //在线性表最后插入x元素

Node search(T key); //查找,返回首次出现的关键字为key

元素

(6)基于排序单链表实现线性表的以下综合应用:

e)删除第i个开始的k个元素。

f)删除递增有序单链表中所有值大于mink且小于maxk的元素。

g)将两个单链表合并为一个单链表,保持有序。

h)若两个元素按值递增有序排列的单链表A和B,且同一表中的元素值各

不相同。试构造一个单链表C,其元素为A和B中元素的交集,且表C

中的元素也按值递增有序排列。要求利用原有链表中的元素。

(7)一元多项式的基本运算

用排序单链表表示一元多项式,并实现以下基本运算:

●一元多项式的建立

●一元多项式的减法运算(要求:在运算过程中不能创建新结点即A=A-B)

(8)备份自己程序

4.实验准备:

复习教材第2章线性表的知识点

熟悉Java编程环境

提前熟悉实验内容,设计相关算法

相关文档
最新文档