第四章小结

串主要学习了BF算法和KMP算法。

BF算法优点:思想简单,直接,缺点:每次字符不匹配时,都要回溯到开始位置,时间开销大。时间复杂度 O((n-m+1)*m) 。

KMP算法定义了一个next[   ]数组储存回溯位置,在模式匹配的进程中,当主串和子串中第几号元素不匹配的时候,next[   ]指示子串与母串的第几号元素再匹配,避免了不必要的回溯。

多维数组可以看成是线性表的推广,其特点是结构中的元素本身可以是具有某种结构的数据,但属于同数据类型。

数组一般采用顺序存储结构,故存储多维数组时,应先将其确定转换为一维结构,有按“行”转换和按“列”转换两种。

矩阵通常用二维数组来表示,为了节省存储空间,对于几种常见形式的特殊矩阵,比如对称矩阵、三角矩阵和对角矩阵,即存储时可进行压缩存储,即为多个值相同的元只分配一个存储空间,对零元不分配空间。

广义表是另外一种线性表的推广形式,表中的元素可以是称为原子的单个元素,也可以是一个子表。

广义表的结构相当灵活,在某种前提下,它可以兼容线性表、数组、树和有向图等各种常用的数据结构。

广义表的常用操作有取表头和取表尾。广义表通常采用链式存储结构:头尾链表的存储结构和扩展线性链表的存储结构。

posted @ 2020-05-05 23:29  祝勇杰  阅读(91)  评论(0编辑  收藏  举报