第四章学习小结

1、串

①空串与空格串

零个字符的串称为空串,其长度为零;一个或多个空格组成的串" "称为空格串。

②串的相等

只有当两个串的长度相等, 并且各个对应位置的字符都相等时才相等。

③串的链式存储结构与顺序存储结构

串值的链式存储结构对某些串操作,如联接操作等,有一定方便之处,但总地说来,不如顺序存储结构灵活,它占用存储量大且操作复杂。

④串的橾式匹配算法(BF算法与KMP算法)

BF算法:易懂,但特殊情况下算法时间复杂度高

第四章学习小结_第1张图片

 

KMP算法:最大特点是指示主串的指针不需回溯,整个匹配过程 中,对主串仅需从头至尾扫描一遍,这对处理从外设输入的庞大文件很有效,可以边读入边匹配, 而无需回头重读。

2、数组

①由千数组一般不做插入或删除操作, 也就是说; 一旦建立了数组, 则结构中的数据元素个数 和元素之间的关系就不再发生变动。 因此, 采用顺序存储结构表示数组比较合适。

 ②二维数组(m行n列)中任一元素aij的存储位置可由   LOC(i, j) = LOC(O, 0) + (nx i + j)L   确定(每个数据元素占 L 个存储单元)

3、广义表

广义表是线性表的推广,也称列表。广义表不一定是线性表,也不一定是线性结构。线性表是一种特殊的广义表。广义表通常采用链式存储结构:头尾链表的存储结构和扩展线性链表的存储结构。

 

 

完成作业时,因为对KMP算法还是不理解,所以用了BF算法去做,结果果不其然的超时了(如图)

第四章学习小结_第2张图片

看了思宇小结中的那个链接后,对KMP算法才清晰了一点。

 

较上一个阶段,这个阶段有了些进步。打不出来的作业题,没有马上去寻求帮助,而是自己反复修改,虽然结果还是有点瑕疵。这周看书的时间多了,做题前和做题时都有看书。不足的地方是,上课偶有开小差的情况,课前预习没有做足。

你可能感兴趣的:(第四章学习小结)