课程:《程序设计与数据结构》
班级: 1723
姓名: 赵晓海
学号:20172311
实验教师:王志强
实验日期:2018年9月30日
必修/选修: 必修html
结果提交截图
java
本实验小结:
本实验要求完成链表类的初步建立,须要完成toString()
和size()
两个方法。在链表类的建立方面,我采用了泛型的方式,建立了一个ADT,而后采用了泛型,以便于在链表中添加任何数据,方便后期的使用。git
线性结构之链表(3):
1.使用冒泡排序法或者选择排序法根据数值大小对链表进行排序
2.学号是双数, 使用选择排序
3.在排序的每个轮次中, 打印元素的总数,和目前链表的全部元素数组
结果提交截图:
服务器
本实验要求在链表类里加一个冒泡排序的方法,该方法实现了冒泡排序,并且返回每一步排序后的结果,对选择排序的方法进行适当的修改便可完成。数据结构
线性结构之数组(4):
1.经过键盘输入一些整数,创建一个数组
2.这些数是学号中依次取出的两位数,再加上今天的时间
3.打印全部数组元素, 并输出元素的总数
4.用一个特殊变量名来记录元素的总数,变量名是你的名字
5.实现数组插入、删除、输出操做
6.继续上一个程序, 扩展它的功能,每作完一个新功能,或者写了超过10行新代码,就签入代码,提交到源代码服务器
7.从磁盘读取一个文件, 这个文件有两个数字
8.从文件中读入数字1, 插入到数组第 5 位,并打印全部数字,和元素的总数。 保留这个数组,继续下面的操做
从文件中读入数字2, 插入到数组第 0 位,并打印全部数字,和元素的总数。 保留这个数组,继续下面的操做
9.从数组中删除刚才的数字1. 并打印全部数字和元素的总数测试
结果提交截图:
.net
我的觉得本实验能够经过建立一个可以对数组操做的类来实现,声明该类也就建立也一个数组,而后该类中还具有节点的插入和删除以及toString
和size()
方法,经过调用这些方法便可以完成本实验设计
结果提交截图:
3d
本实验小结:
本实验要求在建立的数组操做类中新建一个选择排序的方法,该方法不只要完成选择排序,还要返回选择排序的每一步过程,对选择排序进行必定的修改便可完成。
//删除某一元素,一次删一个且就近 public void deleteNumber(T t) { LinearNode temp = head; if(temp.getElement()==t) { head = temp.next; } else { while (!(temp.next.getElement() == t)) { temp = temp.next; } temp.next = temp.next.next; } nZhaoXiaoHai--; }
使用有bug方法运行结果如图(删除的数较大时):
使用有bug方法运行结果如图(删除的数较小时):
看到这个就真的很蒙圈了,一样的代码,数大了会有bug,我真的佛了,要是我测试的时候用的数不是500而是20,那我这个bug可就真的可能看不到了,真的挺有意思!!!!
==
改成使用.equals
方法判断是否相等便可,由于==
是用来判断地址是否相同的,而.equals
方法则是判断元素是否相同。//删除某一元素,一次删一个且就近 public void deleteNumber(T t) { LinearNode temp = head; if(temp.getElement().equals(t)) { head = temp.next; } else { while (!(temp.next.getElement().equals(t))) { temp = temp.next; } temp.next = temp.next.next; } nZhaoXiaoHai--; }
从对链表和数组的陌生到对他们的熟悉,真的颇有成就感,有点小激动!要走的路还很长,继续努力吧!