第四章 字串和多維陣列
4.1 字串
4.1.1 字串的定義
1.字串的定義
字串是零個或多個組成的有限序列,只包含空格的串成為空格串。串中所包含的字元個數成為串的長度,長度為0的串為空串,記作「」,乙個非空串通常該記作: s=「s1,s2…sn」
字串中任意個連續的字元組成的子串行稱為該串的子串,相應地,包含子串的串稱為主串,子串的第乙個字元在主串的序號成為子串在主串的位置。
2.字串的比較
當下列條件之一成立時,稱x>y。
(1)n1
1,(i=1,2…,n);
(2)存在某個k≤min(m,n),使得xi=yi,(i=1,2,…,k-1),xk
k。4.1.3 模式匹配
給定兩個字元s=「s1,s2…sn」和t=「t1,t2…tn」,在主串s中尋找子串t的過程稱為模式匹配,t成為模式。如何匹配成功,返回t在s中的位置;如果匹配失敗,返回0.
1. 樸素的模式匹配演算法
樸素的模式匹配演算法bf
intbf(char s,char t)
else
}if(t[j]=='\0')return (i-j+1);
else return 0;
}2. 改進的模式匹配演算法
bf演算法簡單但效率較低,一種對bf演算法做了很大改進的模式匹配演算法是kmp演算法,其基本思想是主串不進行回溯。
由t[0]~t[k-1]=s[i-k]~s[i-1]和t[j-k]~t[j-1]=s[i-k]~s[i-1]。
可得: t[0]~t[k-1]=t[j-k]~t[j-1]
用next[j]表示t[j]對應的k值(0≤j-1 j=0
next[j]= max ;
2. 十字鍊錶
稀疏矩陣的鏈結儲存結構稱為十字鍊錶。它具備儲存結構的特點,因此,在非零元素的個數及位置都會發生變化的情況下,通常採用十字鍊錶儲存稀疏矩陣。
其中,element為資料域,儲存非零元素對應的三元組;
right為指標域,指向同一行中的下乙個三元組;
down為指標域,指向同一列中的下乙個三元組。
4.4 應用舉例
1. 字串的應用舉例——凱撒密碼
2. 陣列的應用舉例——幻方
資料結構 第四章 字串和多維陣列
4.1字串 4.1.1 字串的定義 1.定義 字串是零個或多個字元組成的有限序列,只包含空格的串稱為空格串。串中所包含的字元個數稱為串的長度,長度為零的串稱為空串,記作 p非空串通常記為 s s1s2 sn 其中 s是串名,雙引號是定界符,雙引號引起來的部分是串值 si 1 i n 是乙個任意字元。...
資料結構第四章字串和多維陣列
1.字串的定義 字串是零個或多個字元組成的有限序列,只包含空格的稱為空格串。串中所包含的字元個數稱為串的長度,長度為零的串稱為空串。字串中任意個連續的字元組成的子串行稱為該串的子串,包含子串的串稱為主串。子串的第乙個字元在主串中的序號稱為子串在主串中的位置。2.字串的比較 給定兩個字串 x x1x2...
《資料結構》第四章 字串和多維陣列 實驗
資料結構 實驗四 字串和多維陣列 實驗 一 實驗目的 鞏固字串和多維陣列相關知識,學會運用靈活應用。1.回顧字串和多維陣列的邏輯結構和儲存操作特點,字元和陣列的物理儲存結構和常見操作。2.學習運用字串和和陣列的知識來解決實際問題。3.進一步鞏固程式除錯方法。4.進一步鞏固模板程式設計。二 實驗時間 ...