字符串、数组和特殊矩(数据结构)

本文详细介绍了字符串、数组和特殊矩阵的概念及其在数据结构中的应用。在字符串部分,探讨了模式匹配算法,包括朴素匹配和KMP算法。数组章节讲解了其线性表特性及存储方式。在特殊矩阵部分,重点阐述了对称矩阵、三角矩阵的压缩存储方法,以提高空间效率。
摘要由CSDN通过智能技术生成

第四章 字符串、数组和特殊矩阵

4.1字符串

  • 字符串是由0个或多个字符构成的有限序列。
  • 串中所含字符串的个数n称为字符串的长度;当n=0时。字符串为一空串
  • 两个字符串相等,当且仅当两个串的长度相等,并且各个对应位置的字符都相等。
  • 若S=“ ”,此时s由一个空格字符组成,其长度为1,它不等价于空串,因为空串的长度为0.

字符串是一种特殊的线性表,由于线性表有顺序存储和链式存储两种基本的存储结构,因此字符串也有两种基本的存储结构:顺序串和链式串

4.2字符串的模式匹配

寻找字符串p在字符串t中首次出现的位置称为字符串的匹配模式,其中,称p为模式,t为正文,t的长度远远大于p的长度。

4.2.1朴素的模式匹配算法

基本思想:用p中的每个字符去与t中的字符一一比较,其中,n代表正文t的长度,m为模式p的长度。如果t1=p1,t2=p2,…,tm=pm,则模式匹配成功,此时返回起始位置即可;否则,将p向右移动一个字符串的位置,重新开始比较。(就是一个一个比较,比较不到再找下一个)。

时间复杂度为O(n*m)

算法如下:

int index(seqstring p,seqstring t)
{
   
    int i,j,succ;
    i=0;succ=0   /*用i扫描正文t,succ为匹配成功的标志*/
    while(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值