4.1 字串
4.1.1 字串的定義
1、字串的定義
字串:是零個或者多個字元陣列的有限序列。
空格傳:只包含空格的串。
串中所包含的字元個數稱為串的長度,長度為0的串稱為空串。
子串:字串中任意個連續的字元組成的子串行。
2、字串的比較
通過組成串的字元之間的比較實現。
4.1.2 字串的儲存結構
字串是資料元素為單個字元的線性表,一般採用順序儲存。
一般有三種方法表示串的長度:
(1)用乙個變數來表示串的長度。
(2)在串尾儲存乙個不會在串中出現的特殊字元作為字串的終結符。
(3)用陣列的0號單元存放串的長度,串值從1號單元開始存放。
4.1.3 模式匹配
給定兩個字串s=「s1s2...sn」和 t= 「t1t2...tm」,在主串s中尋找子串t的過程稱為模式匹配。t稱為模式。如果匹配成功,返回t在s中的位置;匹配失敗返回0.
1、樸素的模式匹配演算法bf
int bf(char s,char t)
i=0;j=0;
while((s[i]!=』\0』)&&(t[j]!=』\0』))
if(s[i]==t[j])
else
if(t[j]== 『\0』) return(i-j+1);
else return 0;
4.2 多維陣列
4.2.1 陣列的定義
陣列是由型別相同的是資料元素構成的有序集合。
特點:資料元素本身可以具有某種結構,但屬於同一資料型別。
陣列是乙個具有固定格式和數量的資料集合,在陣列上一般不能執行插入或刪除某個陣列元素的操作。
(1)讀操作:給定一組下標,讀取相應的陣列元素。
(2)寫操作:給定一組下標,儲存或修改相應的陣列元素。
其本質對應一種操作——定址:根據一組下標定位相應的陣列元素。
4.2.2 陣列的儲存結構與定址
二維陣列的每個元素含有兩個下標,需要將二維關係對映為一維關係。對映方法:
(1)以行序為主序
(2)以列序為主序
按行優先儲存的基本思想:先行後列,先儲存行號較小的元素,行號相同者先儲存列號較小的元素。
按列優先儲存的基本思想:先列後行,先儲存列號較小的元素,列號相同者先儲存行號較小的元素。
4.3 矩陣的壓縮儲存
一些階數很高的矩陣同時在矩陣中有很多零元素——稱為稀疏矩陣。
壓縮儲存的基本思想:1)為多個值相同的元素只分配乙個儲存空間;2)對零元素不分配儲存空間。
4.3.1 對稱矩陣的壓縮儲存
對稱矩陣關於主對角線對稱,so只需要儲存下三角部分,在n*n個儲存單元裡只需要n*(n+1)/2個儲存單元,
方法:將所有元素存入陣列sa,其下標與i、j的關係:k=i*(i-1)/2+j-1
而上三角中的元素aij=aji,k=j*(j-1)/2+i-1
4.3.2 三角矩陣的壓縮儲存
相當於矩陣斜切的一半,共儲存n*(n+1)/2+1個元素,下三角中對於任意元素aij在sa中的下標k與i、j的對應關係:
i*(i-1)/2+j-1 i>=j
k=n*(n+1)/2 i上三角中:
(i-1)*(2*n-i+2)/2+j-i
k=n*(n+1)/2
4.3.3 對角矩陣的壓縮儲存
所有非零元素都集中在以主對角線為中心的帶狀區域,除了主對角線和它的上下若干條對角線的元素外,所有其他元素都為0.
乙個m*n的w對角矩陣(w是占有非零元素的對角線的個數,也稱頻寬),1)將其壓縮到m行w列的二維陣列b中,aij對映為bts的關係:
t=is=j-i+2
4.3.4 稀疏矩陣的壓縮儲存
稀疏矩陣:零元素居多的矩陣
三元組:行號,列號,非零元素值。
其結構體型別:
template
struct element
int row,col;
t item;
1、三元組順序表
儲存定義:
const int maxterm=100;
struct sparsematrix
element data[maxterm];
int mu,nu,tu;
2、十字鍊錶
element 為資料域,儲存非零元素對應的三元組。
right為指標域,指向同一行中的下乙個三元組。
down為指標域,指向同一列中的下乙個三元組。
第四章 字串和多維陣列
4.1字串的定義 1.串 零個或多個字元組成的有限序列 串 零個或多個字元組成的有限序列。串長度 串中所包含的字元個數。空串 長度為0的串,記為 非空串通常記為 s s1 s2 sn 其中 s是串名,雙引號是定界符,雙引號引起來的部分是串值 si 1 i n 是乙個任意字元。1.1串的邏輯結構 子串...
第四章字串和多維陣列
4.1字串的定義 1.串 零個或多個字元組成的有限序列 串 零個或多個字元組成的有限序列。串長度 串中所包含的字元個數。空串 長度為0的串,記為 非空串通常記為 s s1 s2 sn 其中 s是串名,雙引號是定界符,雙引號引起來的部分是串值 si 1 i n 是乙個任意字元。1.1串的邏輯結構 子串...
第四章字串和多維陣列
串 零個或多個字元組成的有限序列。串長度 串中所包含的字元個數。空串 長度為0的串,記為 非空串通常記為 s s1 s2 sn 其中 s是串名,雙引號是定界符,雙引號引起來的部分是串值 si 1 i n 是乙個任意字元。子串 串中任意個連續的字元組成的子串行。主串 包含子串的串。子串的位置 子串的第...