20172324 2018-2019-1《程序设计与数据结构》实验1报告

20172324 2018-2019-1《程序设计与数据结构》实验1报告

课程:《程序设计与数据结构》
班级: 1723
姓名: 曾程
学号:20172324
实验教师:王志强
实验日期:2018年9月30日
必修/选修: 必修

一、实验内容

链表练习

  • 实验一:通过键盘输入一些整数,建立一个链表
  1. 打印所有链表元素, 并输出元素的总数。
  2. 用一个特殊变量名来纪录元素的总数,变量名就是你的名字。 例如你叫 张三, 那么这个变量名就是int nZhangSan = 0; //初始化为 0.
  • 实验二:实现节点插入、删除、输出操作
    从磁盘读取一个文件, 这个文件有两个数字。
    从文件中读入数字1, 插入到数组第 5 位,并打印所有数字,和元素的总数。 保留这个数组,继续下面的操作。
    从文件中读入数字2, 插入到数组第 0 位,并打印所有数字,和元素的总数。 保留这个数组,并继续下面的操作。
    从数组中删除刚才的数字1. 并打印所有数字和元素的总数。

  • 实验三:使用冒泡排序法或者选择排序法根据数值大小对链表进行排序

  1. 在排序的每一个轮次中, 打印元素的总数,和目前链表的所有元素。

数组练习

  • 实验四:通过键盘输入一些整数,建立一个链表
  1. 打印所有数组元素, 并输出元素的总数。
  2. 在你的程序中,请用一个特殊变量名来纪录元素的总数,变量名就是你的名字。 例如你叫 张三, 那么这个变量名就是int nZhangSan = 0; //初始化为 0.
  3. 实现节点插入、删除、输出操作
  4. 从磁盘读取一个文件, 这个文件有两个数字。
    从文件中读入数字1, 插入到数组第 5 位,并打印所有数字,和元素的总数。 保留这个数组,继续下面的操作。
    从文件中读入数字2, 插入到数组第 0 位,并打印所有数字,和元素的总数。 保留这个数组,并继续下面的操作。
    从数组中删除刚才的数字1. 并打印所有数字和元素的总数。
  • 实验五:使用冒泡排序法或者选择排序法根据数值大小对数组进行排序
    在排序的每一个轮次中, 打印元素的总数,和目前数组的所有元素。

二、实验过程及结果

  • 实验1结果截图:

  • 实验2结果截图:

  • 实验3结果截图:

  • 实验4结果截图:

  • 实验5结果截图:

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

  • 问题一:实验二的时候,编完代码运行的时候发现只能toString一次,如图所示,第二次无法将链表里的元素打印出。

  • 问题一解决方案:感觉应该是delete或者insert中某一个方法写错了导致的,就用了debug调试,发现delete没有问题

后来将insert步骤删去后,就能正常打印了。

那就只能是insert的问题,那么问题来辽,insert那一步出什么问题了呢?后来,我发现我写的方法是要求我在某一个位置插入一个数,

public void insert(T element, int n )

但是我编写的代码是只能在head处插入才能成功插入的,发现问题了!

  • 问题二:做实验二时出现了java.util.NoSuchElementException的错误提示,百思不得其解。
  • 问题二解决方案:编写代码的时候要注意一些微小差别带来的巨大差别..比如这个地方,

我将str定义为字符串分隔的名称,但是在下面不小心打成了st,因为编写的时候存在st所以没有报错,但是就导致了nosuchelmentexception的存在

  • 问题三:二插到第二位了
  • 问题三解决方案:检查insert代码,没有考虑插入第0位时和后面不一样的情况

做完了所有...除了1-3的排序,实在不会做了然后问qx她方法里的head指代的是什么,她过来帮我看了看代码,然后告诉我我之前都敲错辽,虽然结果是一样的,但根本不是一个链表,只是自己手动添加的...得重新写...

四、其他(感悟、思考等)

五、参考资料

posted @ 2018-10-07 14:32  amberR  阅读(226)  评论(0编辑  收藏  举报
/*头部导航栏*/ #navigator { font-size:15px; border-bottom: 1px solid #ededed; border-top: 1px solid #ededed; height: 60px;/*导航栏高度,原始50*/ clear: both; margin-top: 25px; } /*导航栏设置,可以自定义导航栏的目录*/ #navList { min-height: 35px; float: left; } #navList li { /*每一个栏目节点*/ float: left; margin: 0 5px 0 0; /*这里原来是0 40px 0 0 */ } #navList a { /*栏目文字的格式*/ display: block; width: 5em; height: 22px; float: left; text-align: center; padding-top: 19px; }