标签:... pat 主串 矩阵 笔记 next 学习 str 第四章
第四章学习内容:
一、串
线性表的一种,一般指字符串。有两种存储方式:
顺序存储(相当于存字符的一维数组):
[char1, char2, char3...charn]
链式存储(相当于data域为字符的链表):
[char1]->[char2]->[char3]->...->[charn]->NULL
二、数组
使用顺序存储。
一维数组:
[E1, E2, E3...En]
二维数组(矩阵):
arry[m, n]=
[E11, E12, E13...E1m
E21
E31
...
En1, En2, En3...Enm]
矩阵的压缩:
一般对于两种矩阵可进行压缩:
特殊矩阵:
1.对称矩阵(元素以主对角线为对称轴对应相等的矩阵):
2.对角矩阵(除主对角线之外其他元素都为0的矩阵):
3.三角矩阵(主对角线以下或以下元素全为0的矩阵):
稀疏矩阵:
矩阵中存在极少量非零元素,可使用三元组、十字链表等进行压缩。
三、广义表
元素拥有自身结构的列表,线性表的推广,是非线性表。
难点:
一、KMP算法
用于串的模式匹配的算法
算法流程:
设有主串str,子串pat。
1.扫描子串pat,生成储存子串内重复模式的数组next:
pat: [1 6 3 0 6 1 0 8 7 1 6 3 9 4 6]
next:[-1 0 0 0 0 0 1 0 0 0 1 2 3 0 0]
^ next[12]
next数组表示字串[ 0 : i-1 ]切片上的首尾两端相同模式的最大长度。
如next[12] 表示[1 6 3 0 6 1 0 8 7 1 6 3 9]首尾有长度为3的相同模式[1 6 3]。
2.遍历主串,利用next数组来将指向子串pat的指针回退到串首相同模式上,所以指向主串str的指针可以保持一直向前不回退。
3.若指向子串pat的指针到达pat尾端,返回此时指向主串str的指针位置。
4.若指向主串str的指针到达str尾端,返回0。
标签:...,pat,主串,矩阵,笔记,next,学习,str,第四章 来源: https://www.cnblogs.com/mercurius09/p/12833093.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。