JAVA典型数据结构实现与操作
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二典型数据结构实现与操作
一、实验目的
1、设计、实现并测试一系列Java引用类型;
2、训练学习者面向对象高级特性的应用能力,包括类的继承、方法重写、抽象类与接口应用、程序流程控制;
二、实验内容
1、Performer接口,描述一切具有“自我表现”能力的事物,其中至少应提供一个show()方法用于显示当前事物的相关说明信息。
2、Person类,实现Performer接口,描述人员信息及相关操作,包括但不限于人员姓名、年龄等。
3、Book类,实现Performer接口,描述图书信息及相关操作,包括但不限于书号、书名、价格等。
4、抽象类Node,实现Performer接口,描述通用数据节点,其中应封装一整型的数据值value及相关操作功能。
5、LinkedListNode类,继承抽象类Node,描述单向链表节点,在Node数据结构基础上添加一个next属性,以指向其后继节点。
6、TreeNode类,继承抽象类Node,描述二叉树节点,在Node数据结构基础上添加lchild及rchild属性,分别用于引用其“左孩子”、“右孩子”节点。
三、实验要求
1、实验前书写实验预习报告;
2、掌握继承、多态、方法重写
3、掌握抽象类、接口
4、了解关键字super、static
5、学会流程控制
6、了解数据结构(链表、二叉树)及相关算法
7、写出实验报告
四、实验学时
8学时
五、实验步骤
1、进入MyEclipse环境,新建一个Java Project;
2、编写实验内容中提到的类;
3、编写TestPerformer类,测试应用程序类,在该类中定义一个测试方法introduce(Performer p),并分别创建和使用Person、Book、LinkedListNode 及TreeNode类型对象为实参调用introduce()方法,以验证Java接口与其实现类之间的多态性。类似地,还可以再定义一个测试方法getInfo(Node n),并分别使用LinkedListNode及TreeNode类型对象为实参调用,以验证Java父类与子类之间的多态性机制。;
4、编写LinkedListTool类,单向链表工具类,在该类中提供一系列static 方法,实现单向链表的常规操作功能,包括但不限于:构造一个测试用新链表、遍历链表、向链表尾部追加节点、删除链表中符合特定条件的节点(例如删除链表中value属性为某一特定值的所有节点)、链表排序、向有序链表中插入一个新节点(仍保持其有序)、有序链表合并(结果仍为有序链表),并对上述方法进行测试。
5、调试运行程序。
六.实验流程图
P e r m o r f e r
B O O K N
O
D
E
P
E
R
S
O
N
TreeNode
LinkedList
Node
七。实验代码
1.person
import com.ambow.Performer;
public class Person implements Performer{ private String name;
private int age;
public Person(String name,int age){ super();
=name;
this.age=age;
}
public String getName(){
return name;
}
public void setName(String name){
=name;
}
public int getAge(){
return age;
}
public void setAge(int age){
this.age=age;
}
public void show(){
System.out.println("个人信息,姓名:"+name+",年龄:"+age);
}
}
2.book
import com.ambow.Performer;
public class Book implements Performer{
private String id;
private String name;
private double price;
public Book(String id,String name,double price){
super();
this.id=id;
=name;
this.price=price;
}
public String getId(){
return id;
}
public void setId(String id){
this.id=id;
}
public String getName(){
return name;
}
public void setName(String name){
=name;
}
public double getPrice(){
return price;
}
public void setPrice(double price){
this.price=price;
}
public void show(){
System.out.println("图书简介,书号:"+id+",书名:"+name+",价格:"+ price);
}
}
3.Node
import com.ambow.Performer;
public abstract class Node implements Performer{
private int value;
public Node(){
}
public Node(int value){
this.value=value;
}
public int getValue(){
return value;
}
public void setValue(int value){
this.value=value;
}
}
4.LinkedListNode
public class LinkedListNode extends Node{