20172327 2018-2019-1 《程序设计与数据结构》实验一:线性结构实验报告
20172327 2018-2019-1 《程序设计与数据结构》实验一:线性结构实验报告
- 课程:《Java软件结构与数据结构》
- 班级:201723
- 姓名:马瑞蕃
- 学号:20172327
- 实验教师:王志强
- 实验日期:2018年9月28日-2018年10月2日
- 必修/选修:必修
一、实验内容:
实验一:基本链表构建:
- 1.通过键盘输入一些整数,建立一个链表。
这些数是你学号中依次取出的两位数。再加上今天的时间。
例如
你的学号是 20172301
今天时间是 2018/10/1, 16:23:49秒
数字就是:
20, 17,23,1, 20, 18,10,1,16,23,49
-
2.打印所有链表元素, 并输出元素的总数。
-
3.在你的程序中,请用一个特殊变量名来纪录元素的总数.
变量名就是你的名字。 例如你叫 张三, 那么这个变量名就是
int nZhangSan = 0; //初始化为 0.
- 4.做完这一步,把你的程序签入源代码控制(git push)。
实验二:实现节点插入、删除、输出操作
- 1.从磁盘读取一个文件,这个文件有两个数字。
从文件中读入数字1,插入到链表第 5 位,并打印所有数字,和元素的总数。 保留这个链表,继续下面的操作。
从文件中读入数字2,插入到链表第 0 位,并打印所有数字,和元素的总数。 保留这个链表,并继续下面的操作。
- 2.从链表中删除刚才的数字1.
- 3.并打印所有数字和元素的总数。
实验三:实现链表的冒泡排序
- 1.使用冒泡排序法或者选择排序法根据数值大小对链表进行排序。
- 2.打印元素的总数,和目前链表的所有元素。
实验四:实现数组插入、删除、输出操作
从文件中读入数字1,插入到数组第 5 位,并打印所有数字,和元素的总数。 保留这个数组,继续下面的操作。
从文件中读入数字2,插入到数组第 0 位,并打印所有数字,和元素的总数。 保留这个数组,并继续下面的操作。
实验五:实现数组的选择排序
- 1.使用冒泡排序法或者选择排序法根据数值大小对数组进行排序
- 2.打印元素的总数,和目前数组的所有元素。
二、实验过程及结果:
实验一
我通过用泛型的方法来做的,原码可以借用书本代码进行修改。
实验二
先判断文件,再将文件内内容读出,并将第0个字符和第2个字符读出分别使其成为两个将要插入的元素。
实验三
在LinkedStack中加入一个新的方法,使用冒泡排序来排列当前链表中数字的顺序。
实验四
重新构造一个Array类,将创建数组所需要的插入,从某位置插入,从某位置删除,以及计算元素数目,等方法都写入。读取文件和插入文件与实验二中所用方法相同。
实验五
添加选择排序方法到类中,在判断大小排序的过程中,可将每一部之后数组的变化情况随循环输出。
三、实验过程中遇到的问题和解决过程
问题1.在文本读取并赋值位元素的过程中
如下图所示,在将char型转化为String型或int型的过程中,遇到了一些问题。
通过在网络上查找,我将char型转化为int型的情况和方法进行了查找:https://blog.csdn.net/chen372901/article/details/52102074
问题2.在选择排序时,发现排序后数组全变为0了
如下图所示
通过对比,发现我在写方法时,出现了很大错误,最后通过对同学方法的对比,改了好多才合适。
四、感悟
通过这次实验,我发现我对这段时间链表,数组,队列的学习并部扎实,有些基本的还是记不住,在逻辑推理的过程中,遇到的麻烦也比较多。这次实验让我知道了,最近的不足,也让我决定抽出更多时间去学习Java。