0
点赞
收藏
分享

微信扫一扫

数据结构杂谈(七)——串

alonwang 2022-04-07 阅读 31
数据结构

文章目录

7 串

7.1 基本知识

7.1.1 串的定义

🌹定义

🌹各种概念

🌹字符串和线性表的区别

7.1.2 串的抽象类型数据定义

7.1.3 串的比较

🌹原理

7.2 串的存储结构

回顾前面的链表、栈、队列,关于静态的存储我们都是采用数组,这里我们也不例外。

🌹7.2.1串的顺序存储

🌹7.2.2 串的链式存储

7.3 基本操作

🌹7.3.1 返回子串操作

//返回子串操作
bool SubString(SString& Sub, SString S, int pos, int len) 
{
	//子串范围越界
	if (pos + len - 1 > S.length)
		return false;
	for (int i = pos; i < pos + len; i++)
		Sub.ch[i - pos + 1] = S.ch[i];
	Sub.length = len;
	return true;
}

🌹7.3.2 比较操作

//比较操作
int StrCompare(SString S, SString T) 
{
	//比较操作
	for (int i = 1; i < S.length && i <= T.length; i++) 
	{
		if (S.ch[i] != T.ch[i])
			return S.ch[i] - T.ch[i];
	}
	//扫描过的所有字符都相同,则长度长的串更大
	return S.length - T.length;
}

🌹7.3.3 定位操作

//定位操作
int Index(SString S, SString T) 
{
	int i = 1, n = StrLength(S), m = StrLength(T);
	SString sub; //由于暂存子串
	while (i <= n - m + 1) 
	{
		SubString(sub, S, i, m);
		if (StrCompare(sub, T) != 0)
			++i;
		else
			return i;
	}
	return 0;
}
举报

相关推荐

0 条评论