一、串的定義
串是由零個或多個字符組成的有限序列,又稱字符串。
二、串的相關概念
- 串的長度: 串中包含的單字符個數。
- 空串: 零個字符組成的串,其長度爲0,可以用希臘字母“Φ”表示;
空格串: 只包含空格的串,其長度不爲0,而且可以不止一個空格。 - 子串: 以一個串爲主串,由其中任意個數的連續字符組成的子序列,稱爲該串的子串;
子串的位置: 子串的第一個字符在主串中的序號。 - 串的比較: 通過比較組成串的字符個數和編碼來實現。當兩個串的長度、各個位置的對應字符都相同,才認爲它們相等。
假設給定兩個串:s = “a1a2……an”,t = “b1b2……bm”,當滿足以下條件之一時,認爲s < t:
① n < m,且ai = bi(i = 1,2,……,n);
② 存在某個k ≤ min(m, n),使得ai = bi(i = 1,2,……,k-1),ak < bk。
三、串的存儲結構
- 順序存儲結構: 用一組地址連續的存儲單元來存儲串中的字符序列;
- 鏈式存儲結構: 與線性表類似,用不連續的存儲單元存儲字符。
注意: 若一個結點只存儲一個字符,會存在很大的空間浪費(地址域一般佔用至少4字節的空間)。因此,可以合併多個字符爲一個結點(若最後結點未被佔滿,可以自定義特殊字符進行補全)。