2014 数据结构(JAVA版)实验报告

上传人:20****03 文档编号:175188042 上传时间:2021-03-22 格式:DOC 页数:20 大小:86KB
返回 下载 相关 举报
2014 数据结构(JAVA版)实验报告_第1页
第1页 / 共20页
2014 数据结构(JAVA版)实验报告_第2页
第2页 / 共20页
2014 数据结构(JAVA版)实验报告_第3页
第3页 / 共20页
2014 数据结构(JAVA版)实验报告_第4页
第4页 / 共20页
2014 数据结构(JAVA版)实验报告_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《2014 数据结构(JAVA版)实验报告》由会员分享,可在线阅读,更多相关《2014 数据结构(JAVA版)实验报告(20页珍藏版)》请在金锄头文库上搜索。

1、实验报告 专 业: 课程名称: 数据结构(JAVA版) 班 级: 姓 名: 学 号: 指导教师: 实验一:JAVA包、接口实验目的: 1. 掌握package程序包的创建和使用;2. 掌握接口的概念,学会使用接口的定义,继承接口,实现接口;3. 掌握使用Eclipse上机调试的基本方法。实验内容一、 实验内容1、 构建一个Java Application。2、 定义一个名为Stu包,在这个包中定义一个实现显示学生的学号、姓名、性别和班级的Student类;然后定义另一个引用Stu包的类,在这个类中用Stu包中的Student类生成一个对象。3、 定义接口,继承接口,实现接口的实验。二、 实训步

2、骤第一:新建一个名为Exp1的工程。第二:包的创建与使用。算法分析:先在两个java源文件中分别定义了两个包,并且在第1个包中定义了一个MyClass1类,在第2个包中定义了一个MyClass2类。在第三个java源文件的主类TestPackage中分别引用前面定义的两个包,并分别将MyClass1类和MyClass2类实例化。1、在该工程中新建一个java源文件,并输入如下代码:package Mypackage; /定义包Mypackagepublic class MyClass1 /定义类MyClass1 public void show() System.out.println(这是类

3、MyClass1); 2、在该工程中再新建一个java源文件,并输入如下代码:package Mypackage.Mypackage1; /定义包Mypackage.Mypackage1public class MyClass2 /定义类MyClass2 public void show() System.out.println(这是类MyClass2); 3、在该工程中再新建一个java源文件,并输入如下代码:import Mypackage.*;import Mypackage.Mypackage1.*;public class TestPackage public static void

4、 main(String args) /用包Mypackage中定义的类MyClass1生成对象MyClass1 obj1=new MyClass1();/用包Mypackage.Mypackage1中定义的类MyClass2生成对象 MyClass2 obj2=new MyClass2(); obj1.show() ; obj2.show(); 4、编译运行程序,查看运行结果。第三:定义一个名为stu包,在这个包中定义一个实现显示学生的学号、姓名、性别和班级的Student类;然后定义另一个引用stu包的类,在这个类中用stu包中的Student类生成一个对象。第四:定义接口,继承接口,实现

5、接口的实验。1、 在Exp1工程下再新建一个java文件InterfaceDemo.java。2、 在该文件的适当位置上定义一个接口Runner。Runner包括一个常量ID=1,和一个抽象方法run()。3、 定义一个接口Animal,继承自Runner,在Animal里增加一个抽象方法breathe()。4、 定义一个类Fish,实现接口Animal。5、 在main方法中对Fish产生实例化对象,进行运用。参考的代码:interface Runnerint ID=1;void run();interface Animal extends Runnervoid breathe();clas

6、s Fish implements Animalpublic void run()System.out.println(fish is swimming);void breathe()/这里会出现一个错误,必须在前面加上public,想一想,为什么?System.out.println(fish is bubbling);class InterfaceDemo public static void main(String args) Fish f1=new Fish();f1.run();f1.breathe();f1.ID=2; /这里也出错,想一想,为什么? 实验数据记录及分析(或程序及运

7、行结果)评语: 实验二:线性表实验目的: 掌握线性表的基本操作:插入、删除、查找等运算在顺序存储结构和链接存储结构上的运算。实验内容设计一个不带头节点的单链表,要求:(1) 不带头节点单链表类的成员函数包括取数据元素个数、插入、删除、取数据元素;(2) 设计一个测试主函数,实际运行验证所设计不带头节点地单链表类个成员函数的正确性。n 提示:1. 参照带头节点的单链表类的设计;public class LinList implements List Node head;Node current;int size;LinList()head = current = new Node(null);p

8、ublic void index(int i) throws Exceptionif(i size - 1)throw new Exception(参数错误!);if(i = -1) return;current = head.next;int j = 0;while(current != null) & j i)current=current.next;j +;public void insert(int i,Object obj) throws Exceptionif(i size)throw new Exception(参数错误!);index(i - 1);current.setNex

9、t(new Node(obj,current.next);size +;public Object delete(int i) throws Exceptionif(size = 0)throw new Exception(链表已空无元素可删!);if(i size - 1)throw new Exception(参数错误!);index(i - 1);Object obj = current.next.getElement();current.setNext(current.next.next);size -;return obj;public int size()return size;p

10、ublic boolean isEmpty()return size = 0;public Object getData(int i) throws Exceptionif(i size - 1)throw new Exception(参数错误!);index(i); return current.getElement();2. 主要考虑(1) 第一个数据元素节点前插入和删除第一个数据元素节点时的情况;(2) 在其他位置插入和删除其他位置节点时的情况。实验数据记录及分析(或程序及运行结果)评语: 实验三:栈实验目的:1. 掌握栈的基本操作:初始化栈、判栈为空、出栈、入栈等运算;2. 利用堆栈解

11、决应用问题。实验内容n 实验内容与要求:利用堆栈将中缀表达式转换为后缀表达式,要求:(1) 编写一个借助堆栈把中缀表达式转换为后缀表达式的函数。假设:l 算数表达式是正确的;l 算数表达式仅由加、减、乘、除、小括号运算符组成。l 算数表达式中的数值在0-9之间。(2) 设计一个测试主函数进行测试,并给出测试结果。n 提示:1. 中缀表达式转换为后缀表达式的算法步骤是:(1) 设置一个堆栈,初始时将栈顶元素置为#;(2) 顺序读入中缀表达式,当读到的单词为操作数是将其输出,接着读入下一个单词;(3) 令x1为保存当前栈顶运算符的变量,x2为保存中缀表达式中当前读到的运算符的变量。当顺序从中缀表达

12、式中读入的单次为运算符时就赋给x2,然后比较x1和x2的优先级,若x1的优先级高于x2的优先级,将x1退栈并作为后缀表达式的一个单词输出,然后再接着比较新的栈顶运算符x1和x2的优先级;若x1的优先级低于x2的优先级,将x2的值进栈,接着读入下一个单词;若x1的优先级等于x2的优先级且x1为“(”x2为“)”时,将x1退栈,接着读入下一个单词;若x1的优先级等于x2的优先级且x1为“#”x2为“#”时,算法结束。2. 应设计的方法(1)先设计一个比较各运算符优先权的方法public int precedence(char x1,char x2) (2)设计将中缀表达式转换为后缀表达式的方法 p

13、ublic String convert(String midExpression) (3)编写main方法将中缀表达式(例如:3*(5-4)+6/2)转换为后缀表达式3642/-5*+3. 语句提示:(1)压入堆栈操作的参数必须是类,所以要将字符包装成字符类seqstack.push(new Character(#); (2)获取字符串某个位置的字符char getchar=midExpression.charAt(i); (3)获取到的栈顶元素是类,所以要利用charValue或得对应的字符char topelement=(Character)seqstack.getTop().charValue();实验数据记录及分析(或程序及运行结果)

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号