循环就像是一种附加属性,一种优化,对一些存储结构添加循环后,能解决一些内部问题。
循环的类型有:单向和双向。
什么样的结构可以添加循环?
顺序队列 链队列
顺序表 链表
注:栈不需要,因为栈只是对一端操作。
变化?
顺序xx(队列或表)和顺序循环xx(队列或表):
添加循环后:解决“假溢”问题,充分利用空间
带来的问题:如何判断“空满”状态?
链式xx和链式循环xx:
就单向而言:
若头尾指针只有其一,链式结构想要对头尾进行操作,必有一个需要遍历,耗时间;若开两个指针,耗空间。
若改为带有尾指针的链式循环结构,则既省了时间又省了空间。
感想:代码有简洁之言,有高效之言。
若将代码比作人说的话。
这里的简洁,我认为就是如何用简练的话表达出想要表达的意思,省却废话,重复的话。
而高效,就涉及到具体的实现,在时间和空间的综合考量下,得出适合的方案。
这就是对代码的优化。
这是我们一直要面对的问题。