数据结构笔记整理第4章:字符串和矩阵

本章深入探讨数据结构中的字符串和矩阵。介绍了字符串的基本概念,如串的定义和长度计算,以及简单的匹配算法和KMP算法。矩阵部分涵盖矩阵的运算,包括转置、加法和乘法,同时讨论了稀疏矩阵的表示方法,如三元组和伪地址表示法。
摘要由CSDN通过智能技术生成

第4章 字符串和矩阵

本章内容

本章主要介绍字符串以及数据结构中矩阵的相关内容。

4.1 字符串的基本概念

串的基本概念:串是由零个或者多个字符组成的有限序列。串中字符的个数称为串的长度,含有零个元素的串叫做空串。

串的长度问题:现在看一个例子:
我们声明了一个字符串str,并对其进行赋值:

char str[] = "abcdef";

串通常由一个字符数组来表示,因此在这里str所占的内存字符为:a,b,c,d,e,f,\0,其中\0是编译器识别串结束。而串内字符为:a,b,c,d,e,f。因此,串str的长度为6,数组str的长度为7。

4.2 字符串的定义与相应算法

我们提到的字符串主要由字符数组来实现,因此算法的方式与顺序栈、顺序队列等结构相似。
【定义1】串的定义

#define maxSize 100     //定义串的最大长度为100
typedef struct Str {
    cbar ch[maxSize+1]; //存放元素的字符数组,多一个用来存放\0
    int length;         //串顶指针
}Str;

串的匹配算法。这里我们介绍两种算法,第一种是非常简单的模式匹配算法,第二种是KMP算法。两种算法都是用来判断子串是否为主串的一个部分。如果是则返回其在主串中的位置,不是则返回-1。

【算法1】

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值