线性表 (linear list)
存在唯一的一个"第一个"数据元素存在唯一的一个"最后一个"数据元素除"第一个"数据元素外,集合中每个数据元素都存在一个且只有一个的前躯数据元素除"最后一个"数据元素外,集合中每个数据元素都存在一个且只有一个的后继数据元素用一组连续的存储单元依次存储线性表的数据元素. - 设线性表的每个元素需占l个存在储单元,并以所占的第一个单元的存储地址作为数据元素的存储位置.则线性表的第i个元素ai的存储位置为LOC(ai) = LOC(ai) + (i-1)*l
优点: 对于读写操作时间复杂度为O(1) 缺点: 对于插入删除操作时间复杂度为O(n)
用一组任意的存储单元存储线性表的数据元数(存储单元可以为连续或不连续),对于每个数据元素ai与其直接后继ai+1的逻辑关系以一个指示其直接后线的信息来表示.这两部分信息组数据元素ai的存储映像,称为结点:其中存储数据元素的域称为数据域;存储直接后线存储位置的域称为指针域.
优点: 对于插入删除操作时间复杂度为O(1) 缺点: 对于读写操作时间复杂度为O(n)
栈(stack)是符合LIFO结构(Last In First Out)的线性表 限定仅在表尾进行插入或删除操作的线性表. 对于栈来说,表尾端有其特殊含义,称为栈顶(top),表头端称为栈底(bottom) 不含元素的空表称为空栈
如线性表, 增加LIFO限制
队列(queue)是一种FIFO结构(First In First Out)的线性表 限定表的一端进行插入,另一端进行删除 允许插入的一端称为队尾(rear),允许删除的一端称为队头(front)
如线性表, 增加FIFO限制
串(String)由零个或多个字符组成的有限序列 其中字符的数目称为串的长度,零个字符的串称为空串
如线性表
克努斯-莫里斯-普拉特算法 - 维基百科,自由的百科全书 https://zh.wikipedia.org/zh-hant/克努斯-莫里斯-普拉特算法