数据结构与算法丨串

目录

一、概述

1.1 串的概念 

1.2 几个术语 

二、串的表示和实现

2.1 串的顺序存储表示

2.1.1 串初始化

2.1.2 求串长

2.1.3 判断串是否为空

2.1.4 串赋值

2.1.5 串复制

2.1.6 串比较

2.1.7 取子串

2.1.8 串连接 

2.2 串的链式存储表示

三、串的模式匹配

1. 概念 

2. 模式匹配的基本算法(BF 算法)

3. KMP 算法

3.1 next 数组

3.2 KMP 算法

4. Horspool 算法 

4.1 概念

4.2 Horspool 算法 

四、串的插入 

1. 问题引入

2. 思路探析

2.1 借助辅助串

2.2 直接在S1中操作 

3. 具体问题 

3.1 方法一(辅助串)

3.2 方法二(直接操作)

五、串的修改 

1. 问题引入

2. 思路探析

2.1 串的删除

2.2 串的插入 

2.3 串的修改

3. 具体实现 

附:系列文章


一、概述

1.1 串的概念 

串(即字符串)是一种特殊的线性结构,它的数据元素仅由一个字符组成。随着非数值处理的广泛应用,某些应用系统(如字符编辑、文字处理、信息检索、自然语言翻译和事务处理等系统)处理的对象经常是字符串数据。例如,在汇编和高级语言的编译程序中,源程序和目标程序都是字符串数据;在事务处理程序中,顾客的姓名、地址、货物的产地、名称等也是作为字符串处理的。

在不同类型的应用中,所处理的字符串具有不同的特点,要有效地实现字符串的处理,就必须根据不同情况选择合适的存储结构。

1.2 几个术语 

(1)子串:串中任意连续字符组成的子序列称为该串的子串 

(2)主串:包含子串的串称为主串。字符在串中的序号表示该字符在串中的位置,子串的第一个字符在主串中的序号称号子串的位置

(3)串相等:当且仅当两个串的长度相等且对应位置上字符都相同,称两个串是相等的 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Want595

感谢小伙伴的支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值