链式存储结构
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
9
串的基本操作分析
子串编辑操作: 查找给定的子串是否存在: 查找给定的子串存在数量: 索引操作: 在某个位置开始插入某个字符串:StrInsert; 在某个位置替换给定长度的子串:StrReplaceIndex;
在某个位置删除给定长度的子串:StrDeleteIndex;
自某位置开始取给定长度的子串:StrSubString
StrAssign
StrAssign (&T, chars)
初始条件:chars 是字符串常量。 操作结果:把 chars 赋为 T 的值。
16
StrCopy
StrCopy (&T, S) 初始条件:串 S 存在。
11
C语言函数库串处理函数
strcpy: 将字符串src复制到dest
Strcat:将字符串src添加到dest末尾 Strchr:检索并返回字符c在字符串s中第一次出现的位置
Strcmp:字符串s1与s2的大小,并返回s1-s2
strcpy :将字符串src复制到dest Strcspn:扫描s1,返回在s1中有,在s2中也有的字符个数 Strdup:将字符串s复制到最近建立的单元 Strerror: 本函数返回最近一次的错误信息, Stricmp:比较字符串s1和s2,并返回s1-s2 strlen: 返回字符串s的长度
14
串的基本操作
StrAssign StrCopy StrDestroy StrEmpty StrCompare StrLength StrConcat
StrSubString StrIndex StrReplace StrInsert StrDelete StrClear
两串串相等:
称两个串是相等的,当且仅当这两个串的值相等。
也即:两个串的长度相等,并且各个对应位置的字符都相等时才相等。 字符相等意味着字符所对应的ascii值相等。
5
2、串的表示和实现
串的基本操作 定长顺序存储表示
堆分配存储表示
串的块链存储表示
6
串的基本操作
串基本操作 C语言函数库串处理函数
3
空串与空格字符串
零个字符的串称为空串,通常以两个相邻的双引 号来表示空串(Null string),如:s=〃〃,它的 长度为零; 仅由空格组成的的串称为空格串,如:s=〃└┘ 〃;若串中含有空格,在计算串长时,空格应计入 串的长度中,如:s=〃I’m a student〃的长度为13 。 在C语言中,用单引号引起来的单个字符与单个 字符的串是不同的, 如s1='a'与s2=〃a〃两者 是不同的,s1表示字符,而s2表示字符串。
数据结构讲义
第四章 串
第四章 串
4.1串类型的定义
4.2串的表示和实现
4.3串的模式匹配算法 4.4串操作应用举例
2
1、串类型的定义
串(或字符串)(String)是由零个或多个字符组成的有 限序列。 一般记作s=〃c0c1c2…cn-1〃 (n≥0) 其中: s为串名,用双引号括起来的字符序列是串的值; ci(0≤i≤n-1)可以是字母、数字或其它字符; 双引号为串值的定界符,不是串的一部分; 字符串字符的数目n称为串的长度; 零个字符的串称为空串; 仅由空格组成的的串称为空格串。
12
C语言函数库串处理函数
strlwr :字符串s中的大写字母全部转换成小写字母,并返回转换后的字符串
strncat:将字符串src中最多maxlen个字符复制到字符串dest中
strncmp:比较字符串s1与s2中的前maxlen个字符 strncpy:复制src中的前maxlen个字符到dest中 strnicmp:比较字符串s1与s2中的前maxlen个字符 Strnset: 将字符串s的前n个字符置于ch中 strpbrk :扫描字符串s1,并返回在s1和s2中均有的字符个数 Strrchr: 扫描最后出现一个给定字符c的一个字符串s
串的基本操作描述
串与线性表的比较 串的存储结构
7
串的基本操作
串的基本操作分析:
常规操作 单串操作 双串操作 子串编辑操作
索引操作
8
串的基本操作分析
常规操作: 字符串初始化: InitString 字符串销毁: DestoryString 单串操作: 求字符串长度:StrLength : 判断是否为空串: 将给定字符串清空: 双串操作: 两个字符串是否相等; 两个字符串复制; 两个字符串连接;
10
C语言函数库串处理函数
对于串的基本操作集可以有不同的定义方法,在使用高级程序设计 语言中的串类型时,应以该语言的参考手册为准。 例如:C语言函数库中提供下列串处理函数: gets(str) 输入一个串; puts(str) 输出一个串; strcat(str1, str2) 串联接函数; strcpy(str1, str2, k) 串复制函数; strcmp(str1, str2) 串比较函数; strlen(str) 求串长函数; c语言提供的关于字符串处理函数,其说明主要在“string.h”中。
4
主串和子串
字符与字符串:
称一个字符在串序列中的序号为该字符在串中的位置; 当一个字符在串中多次出现时,以该字符第一次在字符串中出现的位置
为该字符在串中的位置。
子串与主串:
子串:一个串的任意个连续的字符组成的子序列称为该串的子串;
主串:包含子串的串称为主串。
子串在主串中的位置是以子串的第一个字符在主串中的位置来表示的。
Strrev: 将字符串s中的字符全部颠倒顺序重新排列,并返回排列后的字符串
Strset: 将一个字符串s中的所有字符置于一个给定的字符ch
13
C语言函数库串处理函数
strspn: 扫描字符串s1,并返回在s1和s2中均有的字符个数 strstr: 扫描字符串s2,并返回第一次出现s1的位置 strtod: 将字符串str转换成双精度数,并返回这个数, strtok: 检索字符串s1,该字符串s1是由字符串s2中定义的定界符所分隔 strtol:将字符串str转换成长整型数,并返回这个数, strupr: 将字符串s中的小写字母全部转换成大写字母,并返回转换后的字符 串
串的基本操作分析
子串编辑操作: 查找给定的子串是否存在: 查找给定的子串存在数量: 索引操作: 在某个位置开始插入某个字符串:StrInsert; 在某个位置替换给定长度的子串:StrReplaceIndex;
在某个位置删除给定长度的子串:StrDeleteIndex;
自某位置开始取给定长度的子串:StrSubString
StrAssign
StrAssign (&T, chars)
初始条件:chars 是字符串常量。 操作结果:把 chars 赋为 T 的值。
16
StrCopy
StrCopy (&T, S) 初始条件:串 S 存在。
11
C语言函数库串处理函数
strcpy: 将字符串src复制到dest
Strcat:将字符串src添加到dest末尾 Strchr:检索并返回字符c在字符串s中第一次出现的位置
Strcmp:字符串s1与s2的大小,并返回s1-s2
strcpy :将字符串src复制到dest Strcspn:扫描s1,返回在s1中有,在s2中也有的字符个数 Strdup:将字符串s复制到最近建立的单元 Strerror: 本函数返回最近一次的错误信息, Stricmp:比较字符串s1和s2,并返回s1-s2 strlen: 返回字符串s的长度
14
串的基本操作
StrAssign StrCopy StrDestroy StrEmpty StrCompare StrLength StrConcat
StrSubString StrIndex StrReplace StrInsert StrDelete StrClear
两串串相等:
称两个串是相等的,当且仅当这两个串的值相等。
也即:两个串的长度相等,并且各个对应位置的字符都相等时才相等。 字符相等意味着字符所对应的ascii值相等。
5
2、串的表示和实现
串的基本操作 定长顺序存储表示
堆分配存储表示
串的块链存储表示
6
串的基本操作
串基本操作 C语言函数库串处理函数
3
空串与空格字符串
零个字符的串称为空串,通常以两个相邻的双引 号来表示空串(Null string),如:s=〃〃,它的 长度为零; 仅由空格组成的的串称为空格串,如:s=〃└┘ 〃;若串中含有空格,在计算串长时,空格应计入 串的长度中,如:s=〃I’m a student〃的长度为13 。 在C语言中,用单引号引起来的单个字符与单个 字符的串是不同的, 如s1='a'与s2=〃a〃两者 是不同的,s1表示字符,而s2表示字符串。
数据结构讲义
第四章 串
第四章 串
4.1串类型的定义
4.2串的表示和实现
4.3串的模式匹配算法 4.4串操作应用举例
2
1、串类型的定义
串(或字符串)(String)是由零个或多个字符组成的有 限序列。 一般记作s=〃c0c1c2…cn-1〃 (n≥0) 其中: s为串名,用双引号括起来的字符序列是串的值; ci(0≤i≤n-1)可以是字母、数字或其它字符; 双引号为串值的定界符,不是串的一部分; 字符串字符的数目n称为串的长度; 零个字符的串称为空串; 仅由空格组成的的串称为空格串。
12
C语言函数库串处理函数
strlwr :字符串s中的大写字母全部转换成小写字母,并返回转换后的字符串
strncat:将字符串src中最多maxlen个字符复制到字符串dest中
strncmp:比较字符串s1与s2中的前maxlen个字符 strncpy:复制src中的前maxlen个字符到dest中 strnicmp:比较字符串s1与s2中的前maxlen个字符 Strnset: 将字符串s的前n个字符置于ch中 strpbrk :扫描字符串s1,并返回在s1和s2中均有的字符个数 Strrchr: 扫描最后出现一个给定字符c的一个字符串s
串的基本操作描述
串与线性表的比较 串的存储结构
7
串的基本操作
串的基本操作分析:
常规操作 单串操作 双串操作 子串编辑操作
索引操作
8
串的基本操作分析
常规操作: 字符串初始化: InitString 字符串销毁: DestoryString 单串操作: 求字符串长度:StrLength : 判断是否为空串: 将给定字符串清空: 双串操作: 两个字符串是否相等; 两个字符串复制; 两个字符串连接;
10
C语言函数库串处理函数
对于串的基本操作集可以有不同的定义方法,在使用高级程序设计 语言中的串类型时,应以该语言的参考手册为准。 例如:C语言函数库中提供下列串处理函数: gets(str) 输入一个串; puts(str) 输出一个串; strcat(str1, str2) 串联接函数; strcpy(str1, str2, k) 串复制函数; strcmp(str1, str2) 串比较函数; strlen(str) 求串长函数; c语言提供的关于字符串处理函数,其说明主要在“string.h”中。
4
主串和子串
字符与字符串:
称一个字符在串序列中的序号为该字符在串中的位置; 当一个字符在串中多次出现时,以该字符第一次在字符串中出现的位置
为该字符在串中的位置。
子串与主串:
子串:一个串的任意个连续的字符组成的子序列称为该串的子串;
主串:包含子串的串称为主串。
子串在主串中的位置是以子串的第一个字符在主串中的位置来表示的。
Strrev: 将字符串s中的字符全部颠倒顺序重新排列,并返回排列后的字符串
Strset: 将一个字符串s中的所有字符置于一个给定的字符ch
13
C语言函数库串处理函数
strspn: 扫描字符串s1,并返回在s1和s2中均有的字符个数 strstr: 扫描字符串s2,并返回第一次出现s1的位置 strtod: 将字符串str转换成双精度数,并返回这个数, strtok: 检索字符串s1,该字符串s1是由字符串s2中定义的定界符所分隔 strtol:将字符串str转换成长整型数,并返回这个数, strupr: 将字符串s中的小写字母全部转换成大写字母,并返回转换后的字符 串