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.打印元素的总数,和目前数组的所有元素。

二、实验过程及结果:

实验一

我通过用泛型的方法来做的,原码可以借用书本代码进行修改。
1333119-20181005195835082-1813455285.jpg

实验二

先判断文件,再将文件内内容读出,并将第0个字符和第2个字符读出分别使其成为两个将要插入的元素。
1333119-20181005195852707-945942573.jpg

实验三

在LinkedStack中加入一个新的方法,使用冒泡排序来排列当前链表中数字的顺序。
1333119-20181005195906707-1275508456.jpg

实验四

重新构造一个Array类,将创建数组所需要的插入,从某位置插入,从某位置删除,以及计算元素数目,等方法都写入。读取文件和插入文件与实验二中所用方法相同。
1333119-20181005195931523-1540440404.jpg

实验五

添加选择排序方法到类中,在判断大小排序的过程中,可将每一部之后数组的变化情况随循环输出。
1333119-20181005195946768-1821848040.jpg

三、实验过程中遇到的问题和解决过程

问题1.在文本读取并赋值位元素的过程中

如下图所示,在将char型转化为String型或int型的过程中,遇到了一些问题。
1333119-20181005195959619-1194699368.png

1333119-20181005200013254-1206530617.png

通过在网络上查找,我将char型转化为int型的情况和方法进行了查找:https://blog.csdn.net/chen372901/article/details/52102074

问题2.在选择排序时,发现排序后数组全变为0了

如下图所示
1333119-20181005200026937-1952569735.png

1333119-20181005200053611-1373355.png

通过对比,发现我在写方法时,出现了很大错误,最后通过对同学方法的对比,改了好多才合适。

四、感悟

通过这次实验,我发现我对这段时间链表,数组,队列的学习并部扎实,有些基本的还是记不住,在逻辑推理的过程中,遇到的麻烦也比较多。这次实验让我知道了,最近的不足,也让我决定抽出更多时间去学习Java。

参考资料

转载于:https://www.cnblogs.com/mrf1209/p/9745694.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值