数据结构第四章串

本文详细介绍了数据结构中的串,包括串的定义、基本操作,如顺序存储、链式存储及其优缺点,以及赋值、复制、判空等操作。重点讨论了KMP算法,阐述了其主要思想并提及了KMP算法的优化,强调了nextval数组在算法中的作用。
摘要由CSDN通过智能技术生成

第四章 串

定义:

串,即字符串,是由零个和多个 字符 组成的有序序列

串中字符个数称为 串的长度,n=0时串称为 空串

子串:串中任意个 连续的字符组成的子序列

主串:包含子串的串

字符在主串的位置:字符在串中的序号

子串在主串中的位置:子串的第一个字符在主串中的位置

基本操作:

基于如此存储:

image-20210606204325399

StrAssign(&T, chars)://赋值操作,把串T赋值为chars
StCopy(& T, S)://复制操作,由串s复制到串T
StrLength(S)://求串长,返回S的元素个数
ClearString(&S)://清空操作,将S清空为空串
DestroyString(&S)://销毁串,将串S销毁
Concat(&T, S1, S2)://串联结,用T返回由S1和S2联结成的新串
SubString(&Sub, pos, len)://求子串,用Sub返回串S的第pos个字符起长度为len的子串
Index(S, T)://定位操作,若主串S中存在与串T值相同的子串,则返回它在主串S中的第一次出现的位置:否则函数值为0
StrCompare(S, T)://比较操作,若S>T,则返回值>0;
				 //若S=T,则返回值=0;
				 //若S<T,则返回值<0
串的顺序存储:

静态数组实现,缺点时 长度不可变

#define MAXLEN 255 //预定义最大串长为255
typedef struct{
    char ch[MAXLEN];//每个分量存储一个字符
    int length;//串的实际长度
}SString;
</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值