20172312 2018-2019-1 《程序设计与数据结构》第2周学习总结

学号 2017-2018-2 《程序设计与数据结构》第X周学习总结

教材学习内容总结

第三章

集合概述(栈)

1.集合是一种隐藏了实现细节的抽象。

2.集合是一种聚集、组织了其他对象的对象。集合的使用者(软件系统中的另一个类或对象)只能通过这些预定的方式和该集合进行交互。

3.(回顾)抽象数据类型是一种在程序设计语言中尚未定义其值和操作的数据类型。ADT必须对实现细节进行定义,且这些定义对用户是不可见的。

4.数据结构是一种用于实现集合的编程结构集。集合本身与实现集合的数据结构是分离的,可以用线性数据结构来实现非线性集合。

5.栈的基本使用就是颠倒顺序,这和它后进先出的特性有关。

6.栈的一个性质——所有操作都是在一端进行的,因此,在中间或者底部删除、增添就很困难。

7.ArrayList可用于存储任意类型的对象的原因所在。因为所有对象都是与Object兼容的。

第四章

链式结构(栈)

1.对象引用变量可以用来创建链式结构,链式结构是一种数据结构。对象引用变量存放的是对象的地址,表示对象在内存中的存储位置。在链表中存储的对象通常泛称为该链表的结点,注:需要一个单独的引用变量来表示链表的首结点,链表终止于其next引用为空的结点

2.指针:引用变量;结点:储存的对象。

3.访问元素不能直接将指针移到要访问的元素处,这样会丢失之前所有的元素。插入结点前要先重新设置指向整个列表的引用。删除结点要特别注意首结点的删除方法。

4.栈可以用来模拟递归处理,以跟踪恰当的数据

教材学习中的问题和解决过程

  • 问题1:关于上文中的“访问元素不能直接将指针移到要访问的元素处,会丢失之前所有元素”问题不是很理解。
  • 问题1解决方案:百度搜索之后找到了链式存储结构的百科。(https://baike.baidu.com/item/链式数据存储/20956564?fr=aladdin)

      链式存储结构中每个结点除了包含信息域之外,还至少包含 一个指针域。链式存储结构是用指针来体现数据元素之间的逻辑关系的。利用这种结构,各个数据元素的存储单元不再要求是连续的,即可以把逻辑上相邻的两个元素存放在物理上不相邻的存储单元中,还可以在线性编址的存储器中表示非线性关系的结点。
      链式存储结构的主要特点为:
      结点中除包含保存数据元素的自身信息的信息域外,还有表示数据元素之间的链接信息的指针域,因此比顺序存储结构的存储密度低,存储空间的利用率也较低。
      逻辑上相邻的数据元素在物理上不一定相邻,可用于存储线性表、树、图等多种逻辑结构。
      插入、删除操作比较灵活,不必移动数据元素,只要改变结点中的指针域的值即可。 

代码调试中的问题和解决过程

  • 问题1:在编译pp3.2的时候出现了选择继续输入语句而退出,如下图。

     

  • 问题1解决方案:是两个String字符串之间使用“==”的问题,我回去查了一下==和equals的区别(https://www.cnblogs.com/whcwkw1314/p/8044947.html
  • 也就是说此处改成equals或者在后面加个=ture也可以。(还是选择equals)
  •  

码云链接

我的idea无法连接到码云,周三会去找老师解决码云无法连接的问题并在当天上传。

结对及互评 —— 见下方评论

参考资料

https://baike.baidu.com/item/链式数据存储/20956564?fr=aladdin

https://www.cnblogs.com/whcwkw1314/p/8044947.html

posted @ 2018-09-18 21:19  Silver银色  阅读(197)  评论(1编辑  收藏  举报