总结
1.Day20
①面向对象与面向过程相比, 有哪些优势?
面向过程是一种主函数为中心的思想,然后将解决问题的每一个步骤写出来,通过主函数按步骤调用相应的函数。面向对象的编程,是将问题分解为多个对象,然后描述对象的不同属性和行为。面向对象相比较于面向过程的优势我觉得有:首先编程思路变得更加清晰,方便人们更好的去理顺思路。程序模块化设计,方便后期维护,并且模块化也可以使代码方便重复使用。
②比较线性表和链接的异同
这里线性表是想指的是顺序表?链接是指链式存储?
相同之处:同属于线性结构
不同之处:顺序表分配的时候一片连续的空间,一般为固定长度。链表分配时不是一片连续的空间,是分散的空间,并且可以动态增加长度。
③分析线性表和链接的优缺点
线性表
优点:可以实现随机存储,存储的元素在逻辑上有序,在存储上也有序。进行元素查找以及 替换时,时间复杂度仅为o(1)
缺点:在初始分配时就需要分配一片固定的空间,并且还是需要连续的,在后续增加空间时 会变得更加麻烦。
链接
优点:动态链接,在增加删除元素时不需要额外挪动后面的元素,时间复杂度较低。后期在 增加链表长度时,可动态增加。
缺点:查找读取元素时,因为每次都需要从头遍历,则相较于顺序表会大幅增加时间复杂 度。
④分析调拭程序常见的问题及解决方案
自己曾在程序循环边界条件设置时出现错误,通过反复多次尝试输出结果来判断最后正常的边界条件代码应该是怎样的。然后还有有时候想着想着自己的逻辑就绕晕了,没搞清楚自己真正的目的是干什么,这时候自己就尝试更改一下思路,判断真正的目的是干什么,然后去构建需要的东西,子最后进行调用以及输出。
⑤分析链队列与循环队列的优缺点
链队列,理论上不限制最大长度,而循环队列是必须确定一个最大长度。如果说可以确定链队的最大长度时,就可以考虑使用循环队列。
⑥第 18 天建立的两个队列, 其区别仅在于基础数据不同, 一个是 int, 一个是 char. 按这种思路, 对于不同的基础数据类型, 都需要重写一个类, 这样合理吗? 你想怎么样?
呃,我觉得吧,合理但是又不合理。合理是因为这是两种不同的基础数据类型,其中数据是不同的对象,建立不同的类方便使用吧。不合理是因为这样大量占用代码的空间,代码的复用性就变得很低,char类型好像也可以使用int来代替。。