数据结构、算法及线性表总结

一.思维导图

数据结构、算法及线性表总结

二.重要概念

  1. 数据的逻辑结构的类型

    1. 集合:数据元素之间除了“同属于一个集合”的关系以外别无其它关系。
    2. 线性结构:数据元素之间存在一对一的关系。
    3. 树形结构:数据元素之间存在一对多的关系。
    4. 图形结构:数据元素之间存在多对多的关系。
  2. 线性表:除了第一个元素和最后一个元素,其余每个元素都只有唯一前驱和唯一后继。

  3. 队列:顺序队中有可能出现假溢出的情况,这时应该把存储队列元素的数组从逻辑上看成一个环,称为循环队列。入队和出队时采用数学上的求余运算。例:

    · 队头指针front循环增1:front = (front + 1) % MaxSize
    · 队尾指针rear循环增1:rear = (rear + 1) % MaxSize

  4. 递归能解决的问题应该满足以下三个条件

    1. 需要解决的问题可以转化为一个或多个子问题来求解,而这些子问题的求解方法与原问题完全相同,只是在数量规模上不同。
    2. 递归调用的次数必须是有限的。
    3. 必须有结束递归的条件来终止递归。

(注:其余重要概念已在思维导图中写出,在此不再赘述)

三.疑难问题及解决方案

  1. 顺序队中,如何区分队空和队满?
    使用一个不存储数据的空间判断(即队列中仅存储MaxSize-1个元素)例:

    · 队空:q->rear == q->front
    · 队满:(q->rear + 1) % MaxSize == q->front

上一篇:使用循环数组高效地实现队列类


下一篇:1