資料結構 字串和多維陣列

2021-10-01 05:10:27 字數 2300 閱讀 6981

本章節主要內容:

字串儲存

模式匹配

陣列的邏輯結構特徵

陣列的儲存方式及定址方法

特殊矩陣和稀疏矩陣的壓縮儲存方法

一、字串

1、串:零個或多個字元組成的有限序列。

串長度:串中所包含的字元個數。

空串:長度為0的串,記為「 」。

非空串表示:s=」s1,s2…sn"(s為串名,「」為定界符,其中為串值,si為任意字元。

2、串的邏輯結構

順序串:用陣列來儲存串中的字串行。

表示串的長度:

用乙個變數來表示串的實際長度。

在串尾儲存乙個不會在串**現的特殊字元作為串的終結符,表示串的結尾。

非壓縮形式

壓縮形式

3、模式匹配

①給定主串s="s1s2…sn"和模式t=「t1t2…tm」,在s中尋找t的過程。——如果匹配成功,返回t在s中的位置,如果匹配失敗,返回-1。假設串採用順序儲存結構,串值從0號單元開始存放。

②應用:生物資訊學(基因表達分析,基因配對)、資訊檢索、拼寫檢查、語言翻譯、資料壓縮、網路入侵檢測

③bf(brute-force)演算法:

從主串s的第0個字元開始和模式t的第0個字元進行比較,若相等,則繼續比較兩者的後續字元;否則從主串s的第1個字元開始和模式t的第0個字元進行比較,重複,直到t中的字元全部比較完畢,則說明本趟匹配成功;或s中字元全部比較完,則說明匹配失敗。

⭐模式匹配過程要進行多趟的匹配,每趟匹配要進行若干次的比較

int bf(char s,char t)

設串s長度為n,串t長度為m,在匹配成功的情況下,考慮:

最好:不成功的匹配都發生在串t的第乙個字元。例如:s=「aaaaaaaaaabcdccccc」,t=「bcd」

最壞:不成功的匹配都發生在串t的最後乙個字元。例如:s=「aaaaaaaaaabccccc」,t=「aaab」

④kmp(knuth-morris-pratt)演算法

i可以不回溯,模式向右滑動到的新比較起點k,並且k僅與模式串t有關。

next【j】表徵著模式t中最大相同字首子串和左子串(真子串)的長度。

void compute_next(char t,int next)

}用偽**描述:

在串s和串t中分別設比較的起始下標i和j;

2.迴圈直到s中所剩字元長度小於t的長度或t中所有字元均比較完畢

①如果s[i]==t[j],繼續比較s和t的下乙個字元;否則

②將j向右滑動到next【j】位置,即j=next【j】;

③如果j=1,則將i和j分別加1,準備下一趟比較;

3.如果t中所有字元均比較完畢,則返回匹配的起始下標;否則返回-1。

三、多維陣列

1、陣列的定義:陣列是由一組型別相同的資料元素構成的有序集合,每個元素受n(n≥1)個線性關係的約束,並稱該陣列為n維陣列。

2、元素本身可以具有某種結構,屬於同一資料型別;

陣列是乙個具有固定格式和數量的資料集合。

3、線性表的推廣:

二維陣列是資料元素為線性表的線性表。

4、陣列的基本操作:

①訪問②修改

訪問和修改操作本質上只對應一種操作——定址

⭐順序儲存

5、陣列的儲存結構與定址——二維陣列

常用的對映方法:

①按行優先:先行後列

aij前面的元素個數

=整行數每行元素個數+本行中aij前面的元素個數

=(i-l1)(h2-l2+1)+(j-l2)

②按列優先:先列後行

四、矩陣的壓縮儲存

1、特殊矩陣和稀疏矩陣

壓縮儲存的基本思想:

①為多個值相同的元素只分配乙個儲存空間;

②對零元素不分配儲存空間

2、對稱矩陣、對角矩陣

3、三元組順序表

稀疏矩陣的修改操作->三元組順序表的插入/刪除操作

4、儲存結構定義:

const int maxterm=100;

template

struct sparsematrix

;五、廣義表

ls=(a0,a1,a2,…,an-1)

1、廣義表與線性表的區別

①線性表的成分都是結構上不可分的氮元素

②廣義表的成分可以是單元素,也可以是有結構的表

③線性表是一種特殊的廣義表

④廣義表不一定是線性表,也不一定是線性結構

2、廣義表的基本運算

①求表頭gethead(l)

②求表尾gettail(l)

3、廣義表的儲存

不能用順序儲存結構

用頭尾表示法

資料結構 字串和多維陣列

第 4 章 字串和多維陣列 本章的基本內容是 字串。在程式語言中大都有串變數的概念,而且實現了基本的串操作,本章重點討論串的儲存結構及模式匹配演算法。陣列。在程式語言中大都提供了陣列作為構造資料型別,本章重點討論陣列以及特殊矩陣的儲存與定址。4.1 字串 主要內容 4.11 字串的定義 4.12 字...

資料結構 字串和多維陣列

本章節主要內容 字串儲存 模式匹配 陣列的邏輯結構特徵 陣列的儲存方式及定址方法 特殊矩陣和稀疏矩陣的壓縮儲存方法 一 字串 1 串 零個或多個字元組成的有限序列。串長度 串中所包含的字元個數。空串 長度為0的串,記為 非空串表示 s s1,s2 sn s為串名,為定界符,其中為串值,si為任意字元...

字串和多維陣列

一 字串 1 字串的定義 是零個或多個字串組成的有限序列,只包含空格的串稱為空格串。2 字串中任意個連續的字元組成的子串行稱為該穿的子串,包含子串的串稱為主串,子串的第乙個字元咋主串中的序號稱為子串在主串中的位置。3 模式匹配 給定兩個字串s和t,在主串s中尋找子串t的過程稱為模式匹配,t為模式。如...