串 陣列和廣義表

2021-09-25 21:06:49 字數 583 閱讀 4643

(1)串是內容受限的線性表,它限定了表中的元素為字元。申有兩種基本儲存結構:順序儲存和鏈式儲存,但多採用順序儲存結構。串的常用演算法是模式運配演算法,主要有bf演算法和kmp演算法。bf演算法實現簡單,但存在回溯,效率低。時間復豪度為o(m×n) 。kmp演算法對bf演算法進行改進,消除回溯,提高了效率,時間複雜度為o(m+n)。

(2)多維陣列可以看成是線性表的推廣,其特點是結構中的元素本身可以是具有某種結構的資料,但屬於同資料型別。 乙個n維陣列實質上是個線性表的組合,其每一維都是乙個線性表。陣列一般採用順序儲存結構,故儲存多維陣列時,應先將其確定轉換為一維結構,有按「行」轉換和按「列」轉換兩種。科學與工程計算中的矩陣通常用二維陣列來表示,為了節省儲存空間,對於幾種常見形式的特殊矩陣,比如對稱矩陣、三角矩陣和對角矩陣,即儲存時可進行壓縮儲存,即為多個值相同的元只分配乙個儲存空間,對零元不分配空間。

(3)廣義表是另外一種線性表的推廣形式,表中的元素可以是稱為原子的單個元素,也可以是乙個子表,所以線性表可以看成廣義表的特例。廣義表的結構相當靈活,在某種前提下,它可以相容線性表、陣列、樹和有向圖等各種常用的資料結構。廣義表的常用操作有取表頭和取表尾。廣義表通常採用鏈式儲存結構:頭尾鍊錶的儲存結構和擴充套件線性鍊錶的儲存結構。

串 多維陣列和廣義表

一 串的定義 串 string 或字串 是由0個或多個字元組成的有限序列 0個字元的串稱為空串 null string 其長度為0 子串 主串中任意個連續的字元組成的子串行 子串的第乙個字元在主串中的位置為子串的位置 空格串 blank string 由乙個或多個空格組成 串是一種內容受限的線性表,...

陣列和廣義表

一 陣列 陣列是一組型別相同的資料元素構成。有一維陣列 二維陣列 n 維陣列。一般實現時,可以過載操作符,比較方便一點。二 矩陣 1 矩陣的加減,需要兩個矩陣擁有相同的行列數才可以。對應各個位置分別進行計算 2 矩陣的相乘,需要第乙個陣的列數等於第二個的行數。如c 0,0 a 的第一列分別乘以 b的...

陣列和廣義表

陣列一旦被定義,它的維數和維界就不再改變 採用順序結構儲存結構表示陣列 二維陣列的儲存方式 以行序為主 c語言 以列序為主 loc i,j loc 0,0 b2 i j l 陣列是隨機儲存結構,由於計算各個元素儲存位置的時間相等,所以儲存陣列中任一元素的時間也相等。壓縮儲存 為多個值相同的元只分配乙...