大二資料結構4(串,陣列,廣義表)

2021-10-10 12:06:21 字數 2398 閱讀 5067

串的表示與實現

串三種儲存

串的n中應用

1)是由零個或者多個字元組成的有限序列

2) 記作s=『a1a2a3 an』

給定兩個串:x=『

x1x2

…xn』

x=『x~1~x~2~…x~n~』

x=『x1x

2…xn

』和y=『y

1y2…

ym⋅y=『y~1~y~2~…y~m·

y=『y1y

2…ym

⋅』,則:

}可採用鍊錶方式儲存串值,每個結點可以存放乙個字元,也可以存放

多個字元 (如圖所示)。

//串的塊狀儲存

#define chunksize 80

//可由使用者定義的塊大小

typedef

struct chunkchunk;

typedef

struct

儲存密度

儲存密度=串值所佔的儲存位/實際分配的儲存位。

詳見上述

1)基本思想:

a. 從主串s

ss中的第乙個字元開始和模式t

tt的第乙個字元進行比較,

b.重複上述過程

2)缺點 :

a. 演算法的一次執行時間不容忽視:問題規模通常很大,常常需要在大量資訊中進行匹配;

b. 演算法改進所取得的積累效益不容忽視:模式匹配操作經常被呼叫,執行頻率高。

3)演算法過程:

4)演算法:

//bf演算法

void

bp(sstring &t,sstring s,

int pos)

else}if

(j>t[0]

)return i-t[0]

;//成功

else

return0;

}

5)複雜度:

a. 最壞情況:不成功匹配都發生在串t的最後乙個字元。

b.最好情況:不成功匹配都發生在串t的第1個字元

void

get_next()

}

bool

kmp()}

else}}

return

false

;}

資料結構 陣列 廣義表

陣列,是有序的元素序列。若將有限個型別相同的變數的集合命名,那麼這個名稱為陣列名。組成陣列的各個變數稱為陣列的分量,也稱為陣列的元素,有時也稱為下標變數。用於區分陣列的各個元素的數字編號稱為下標。陣列是在程式設計中,為了處理方便,把具有相同型別的若干元素按無序的形式組織起來的一種形式。這些無序排列的...

資料結構 串和廣義表

串中字元的數目n稱為串的長度 0個字元的串稱為 空串,長度為0 包含串中任意個 連續字元 的串稱為子串,包含子串的串稱為主串。如a ibm c bm 則a的長度為3,且c為a的子串 b 則b的長度為0 在串的基本操作時候,通常是以 串的整體 作為操作物件。也成為列表,是線性表的一種擴充套件,也是資料...

資料結構 陣列和廣義表

感覺陣列這一段沒講什麼太多的東西。先是講了下定義,就是每個維度上都有對應的前驅後繼,首尾元素例外。操作只有初始化 銷毀 取元素 修改元素。然後講了下適合用順序儲存結構,多維情況下根據下標 j1 j2 j3 jn 找到對應畫素的儲存位置 cn l,ci 1 bi ci,loc loc基址 ciji l...