JAVA典型数据结构实现与操作

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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{

相关文档
最新文档