5.串、数组和广义表

串、数组和广义表

串的定义

串(string): 是由零个或多个字符组成的有限序列,又称 字符串

其中的序列表示串的元素也是具有一对一的关系,又因为其是有限的,所以串也是线性表。

一般记为 s=“a1a2a3……an”,(n>=0)。

空串(null string): 零个字符的串。用两双引号表示 "" ,也可以用希腊字母“Φ” 。

串中任意个数的连续字符组成的子序列称为该串的 子串 ;相应地,包含子串的串被称为 主串

子串在主串中的位置就是子串的第一个字符在主串中的序号。

串的比较

在 C 语言中,当两个串的 长度和对应位置的字符相等 ,才能说两个串是相等的。

给定两个串: s="a1a2a3……an" 和 t="b1b2b3……bn" ,当两个串不相等时,当满足以下条件之一时, s

    1. ni = bi (i=1,2,3……,n) 。
    1. 存在某个 k<=min(m, n) ,使得 ai = bi (i=1,2,3……,k-1),ak < bk

串的抽象数据类型、存储结构及其运算

串的抽象数据类型

ADT 串 (string)
Data
    串中元素仅有一个字符组成,相邻元素具有直接前驱和直接后继关系。
Operation
    StrAssign(T, *chars):生成一个其值等于字符串常量 chars 的串 T 。
    StrCopy(T, S):串 S 存在,有串 S 复制得串 T 。
    ClearString(S):串 S 存在,将串清空。
    StringEmpty(S):若串 S 为空,返回 true ,否则返回 false。
    StrLength(S):返回串的长度,也就是串的元素个数。
    StrCompare(S, T):若 S>T ,返回值>0,若 S=T ,返回0,若 S

串的顺序存储结构

你可能感兴趣的:(5.串、数组和广义表)