字串和陣列

2021-10-01 04:43:17 字數 1604 閱讀 4345

串的儲存結構:用陣列來儲存串中的字串行。

串的長度:

方案1:用乙個變數來表示串的實際長度。

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

方案3:用陣列的0號單元存放串的長度,從1號單元開始存放串值。

非壓縮結構:乙個結點只儲存乙個字元

壓縮結構:乙個結點儲存多個字元;

模式匹配: 給定主串s="s1s2…sn"和模式t="t1t2…tm", 在s中尋找t 的過程稱為模式匹配。

bf演算法:

int bf(char s[ ], char t[ ])

kmp演算法:

void compute_next(char t, int next)

}

int kmp_findpat(char *s, char *t,int *next)

else

j=next[j];

} if(t[j]=='\0')

return i-j;

else

return -1;

}

(多維)陣列——線性表中的資料元素可以是線性表,但所有元素的型別相同。

⑴ 訪問:給定一組下標,讀出對應的陣列元素;

⑵ 修改:給定一組下標,儲存或修改與其相對應的陣列元素。

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

按行優先儲存的定址

aij前面的元素個數 =整行數×每行元素個數+本行中aij前面的元素個數 =(i -l1)×(h2 -l2+1)+(j -l2)

按行列優先儲存的定址

特殊矩陣和稀疏矩陣的壓縮

壓縮儲存的基本思想是: ⑴ 為多個值相同的元素只分配乙個儲存空間; ⑵ 對零元素不分配儲存空間。

對稱矩陣的壓縮

對於下三角中的元素aij(i≥j), 在一維陣列中的下標k與i、j的關係為: k=i×(i-1)/2+j-1 。

上三角中的元素aij(i<j),因為aij=aji,則訪問和它對應的元素aji即可,即: k=j×(j-1)/2+i -1。

三角矩陣的壓縮

矩陣中任一元素aij在陣列中的下標k與i、j的對應關係:

(i-1)×(n+n-i+2)/2+j-i     i<=j     

n×(n+1) /2  i>j

對角矩陣的壓縮:

以行序為主序, aij在一維陣列中的位址k? k=(3*(i-1)-1)+(j-i+1) k=2i+j-3

稀疏矩陣的壓縮:

1.稀疏矩陣的壓縮儲存——三元組順序表

template struct element

;儲存結構定義:

const int maxterm=100;

template struct sparsematrix

;

十字鍊錶:

templateclass olnode

;};

字串和陣列

一 字串儲存 1.串的邏輯結構 子串 串中任意個連續的字元組成的子串行。主串 包含子串的串。子串的位置 子串的第乙個字元在主串中的序號。2.串的儲存結構 順序串 用陣列來儲存串中的字串行。有三種方法可以表示串的長度 1 用乙個變數來表示串的實際長度。2 在串尾儲存乙個不會在串 現的特殊字元作為串的終...

字串 向量和陣列

迭代器介紹 陣列定義和初始化string物件 string物件上的操作 處理string物件中的字元 定義和初始化 vector v1 vector v2 v1 v2中包含有v1中所有元素的副本 vector v2 v1 等價於v2 v1 vector v3 n,va1 v3包含n個重複的v1 ve...

PHP字串和陣列

todo 字串替換 dump str replace a b aaa count dump count todo 分割字串 字串轉陣列 dump explode a,b,c,d todo 拼接陣列的值 陣列組轉字串 dump implode array a b c d todo 格式化輸出 dump...