数据结构-串和数组(一)串的基本概念

👉数据结构-串和数组(二)BF算法
👉数据结构-串和数组(三)KMP算法

本文介绍了串的定义和实现以及基本操作!Let’s go!🏃‍♂️

数据结构

数据结构-串和数组(一)串的基本概念

思维导图

在这里插入图片描述
在这里插入图片描述

1 串的定义和实现

1.1 定义

,即字符串(String)是由零个或多个字符组成的有限序列。一般记为

S = ′ a 1 a 2 ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ a n ′ ( n ≥ 0 ) S = 'a_1a_2······a_n' (n ≥0) S=a1a2ann0

其中,S是串名,单引号括起来的字符序列是串的值; a i a_i ai可以是字母、数字或其他字符;串中字符的个数n称为串的长度。n = 0时的串称为空串(用∅表示)。

例:

S=”HelloWorld!”

T=‘iPhone 11 Pro Max?’

子串: 串中任意个连续的字符组成的子序列。 Eg:’iPhone’,’Pro M’ 是串T 的子串

主串: 包含子串的串。 Eg:T 是子串’iPhone’的主串

字符在主串中的位置: 字符在串中的序号。 Eg:’1’在T中的位置是8(第一次出现)

子串在主串中的位置: 子串的第一个字符在主串中的位置 。 Eg:’11 Pro’在 T 中的位置为8

1.2 存储结构

串是一种特殊的线性表,数据元素之间呈线性关系

1.3 基本操作

StrAssign(&T,chars): 赋值操作。把串T赋值为chars。

StrCopy(&T,S): 复制操作。由串S复制得到串T。

StrEmpty(S): 判空操作。若S为空串,则返回TRUE,否则返回FALSE。

StrLength(S): 求串长。返回串S的元素个数。

ClearString(&S): 清空操作。将S清为空串。

DestroyString(&S): 销毁串。将串S销毁(回收存储空间)。

Concat(&T,S1,S2): 串联接。用T返回由S1和S2联接而成的新串

SubString(&Sub,S,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。

一、填空题(每空1分,共20分) 1. 不包含任何字符(长度为0)的 称为空; 由一个或多个空格(仅由空格符)组成的 称为空白。 (对应严题集4.1①,简答题:简述空和空格的区别) 2. 设S=“A;/document/Mary.doc”,则strlen(s)= 20 , “/”的字符定位的位置为 3 。 4. 子的定位运算称为的模式匹配; 被匹配的主 称为目标, 子 称为模式。 5. 设目标T=”abccdcdccbaa”,模式P=“cdcc”,则第 6 次匹配成功。 6. 若n为主长,m为子长,则的古典(朴素)匹配算法最坏的情况下需要比较字符的总次数为 (n-m+1)*m 。 7. 假设有二维数组A6×8,每个元素用相邻的6个字节存储,存储器按字节编址。已知A的起始存储位置(基地址)为1000,则数组A的体积(存储量)为 288 B ;末尾元素A57的第一个字节地址为 1282 ;若按行存储时,元素A14的第一个字节地址为 (8+4)×6+1000=1192 ;若按列存储时,元素A47的第一个字节地址为 (6×7+4)×6+1000)=1276 。 8. 〖00年计算机系考研题〗设数组a[1…60, 1…70]的基地址为2048,每个元素占2个存储单元,若以列序为主序顺序存储,则元素a[32,58]的存储地址为 9188 。 答:考虑0行0列,(58列×61行+32行)×2字节+基址2048=9188?? 9. 三元素组表中的每个结点对应于稀疏矩阵的一个非零元素,它包含有三个数据项,分别表示该元素 的 行下标 、 列下标 和 元素值 。 10.求下列广义表操作的结果: (1) GetHead【((a,b),(c,d))】=== (a, b) ; //头元素不必加括号 (2) GetHead【GetTail【((a,b),(c,d))】】=== (c,d) ; …………………………
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值