您的位置:首页 > 其它

串的抽象数据类型ADT

2012-09-03 00:00 441 查看
串的逻辑结构和线性表很相似,不同之处在于串针对的是字符集,也就是串中的元素都是字符,哪怕串中的字符是“123”这样的数字组成,或者“2010-10-1CT这 样的日期组成,它们都只能理解为长度为3和长度为10的字符串,每个元素都是字符而已。

因此,对于的基本操作与线性表是有很大差别的。线性表更关注的是单个元素的操作,比如査找一个元素,插入或删除一个元素,但串中更多的是査找子串位置、得到指定位置子串、替换子串等操作。

为了更加深入地了解串这个数据结构,我们需要定义串的ADT,然后再实现串的一些常见操作。串的ADT定义如下:

ADT 串 (String)
Data
串中的元素仅由一个字符组成,相邻元素具有前驱和后继关系.
Operation
StrAssign (&T, chars)
初始条件:chars是字符串常量。
操作结果:生成一个其值等于chars的串T。
StrCopy (&T, S)
初始条件:串S存在。
操作结果:由串S复制得串T。
StrEmpty(S)
初始条件:串S存在。
操作结果:若S为空串,则返回TRUE,否则返回FALSE。
StrCompare(S, T)
初始条件:串S和T存在。
操作结果:若S>T,则返回值>0;若S=T,则返回值=0;若S
以下5个操作称为最小操作子集:


串赋值StrAssign

串比较StrCompare

求串长StrLength

串联接Concat

求子串SubString

在上述抽象数据类型定义的13种操作中,这5种操作不可能利用其他串操作来实现,但其他串操作均可在这个最小操作子集上实现。

延伸阅读

此文章所在专题列表如下:

数据结构里的串是什么东西?

如何比较串的大小

串的抽象数据类型ADT

串的顺序存储结构

串最基本的5个操作的C实现

寻找子串在主串中的位置

如何在串中插入串

如何在串中删除特定长度的子串

字符串中的子串替换

题外话:谈谈malloc()和free()

本文地址:http://www.nowamagic.net/librarys/veda/detail/2403,欢迎访问原出处。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ADT