串、數組和廣義表

串與數組的定義

串

定義:串是一種字符序列,元素可以是字母、數字或其他字符。

特點:

  • 串中的字符按照一定順序排列。
  • 串是線性結構,長度固定或可變。

主要操作:字符查找、子串匹配、插入、刪除等。

數組

定義:數組是一組相同類型的數據元素按一定順序存儲的集合。

特點:

  • 每個元素都有一個固定的索引位置。
  • 索引從零開始。
  • 數組在內存中是連續存儲的。

空串與空格串的區別

空串

  • 定義:長度為 0 的串,沒有任何字符。
  • 表示:""(雙引號中無內容)。
  • 特點:空串是合法的,是字符串的一個特殊形式。

空格串

  • 定義:僅包含空格字符的串。
  • 表示:" "(雙引號中有一個或多個空格)。
  • 特點:空格串的長度不為 0,字符串內容為一個或多個空格字符。

總結:空串是完全沒有字符,長度為 0;空格串包含空格字符,長度不為 0。

廣義表的表頭、表尾、長度和深度

廣義表的定義

廣義表是一種遞歸定義的線性結構,其元素可以是:

  • 原子:不可再分的數據元素。
  • 子表:廣義表中的一個元素,可以是另一個廣義表。

術語解釋

  • 表頭(Head):廣義表中第一個元素,可能是原子或子表。
  • 表尾(Tail):除去表頭後剩餘的部分,可能是空表或另一廣義表。
  • 長度(Length):廣義表中元素的個數(原子和子表均算一個元素)。
  • 深度(Depth):廣義表中最大嵌套層次。

示例分析

廣義表 C=((a,b,c),(d,e))

  • 表頭:(a,b,c)
  • 表尾:((d,e))
  • 長度:2(即 (a,b,c) 和 ((d,e)) 是兩個元素)。
  • 深度:2(最深嵌套層次為子表)。