四数据结构
易混淆点1:顺序存储与链式存储
性能类别 | 具体项目 | 顺序存储 | 链式存储 |
空间性能 | 存储密度 | =1,更优 | <1 |
容量分配 | 事先确定 | 动态变化,更优 | |
时间性能 | 查找运算 | 0 (n) | 0 (n) |
读运算 | 0 (1),更优 | 0 (n),最好情况为1,最 坏情况为n | |
插入运算 | 0 (n),最好情况为 0,最坏情况为n | 0⑴,更优 | |
删除运算 | 0 (n) | 0 (1),更优 |
易混淆点2:空串与空格串
1、空串:长度为零,不包含任何字符。
2、空格串:由一个或多个空格组成的串。虽然空格是一个空白字符,但它也是一个字符,在计算串 长度时要将其计算在内。
易混淆点3:子串和子序列
1、子串:由串中任意长度的连续字符构成的序列称为子串。含有子串的串称为主串。子串在主串中 的位置是指子串首次出现时,该子串的第一个字符在主串中的位置。空串是任意串的子串。
2、子序列:一个串的“子序列”是将这个串中的一些字符提取出来得到一个新串,并且不改变它们 的相对位置关系。
子串要求连续,而子序列要求不改变相对位置即可,例如:ABC的子串为AB, BC,而子序列可以为
ACo
易混淆点4:树的遍历
1、前序遍历:又称为先序遍历,按根玲左玲右的顺序进行遍历。
2、后序遍历:按左玲右玲根的顺序进行遍历。
3、中序遍历:按左玲根玲右的顺序进行遍历。
4、层次遍历:按层次顺序进行遍历。
易混淆点5:图的遍历一深度优先和广度优先
遍历方法 | 说明 | 示例 | 图例 |
深度优先 (垂直优先) |
| Vi, V2, v4, v8, v5, v3, v6, v7 | (M) |
广度优先 (水平优先) 【结合队列】 |
邻接的未访问的顶点。 | Vi, v2, v3, v4, v5, v6, v7, v8 |
注:遍历过程的时间复杂度只与存储结构有关系,无论是深度优先还是广度优先遍历,邻接矩 阵存储时它的时间复杂度为0 (n2),邻接表存储时它的时间复杂度为。(n+e)其中n为邻接顶 点规模数,e为边的规模数。