資料結構 4之 串

2021-10-25 18:06:45 字數 1508 閱讀 6132

串的邏輯結構與線性表極為相似,區別僅在於串的資料物件約束為字符集。

線性表操作物件大多是單個元素,而在串中一般都是以整體(字串)來作為操作物件

串的操作、實現和線性表很多不同。

串的基本操作型別不同的高階語言可以有不同的定義方法。

串賦值,串複製,比較,求長度,連線,求子串,串清除,串銷毀

定長順序儲存表示

堆分配儲存表示

塊鏈儲存表示

kmp演算法解決了指標回溯的問題,讓主串的指標不再回溯,只有模式串回溯

kmp演算法的時間複雜度可以達到o(m+n)

時間複雜度按最壞的情況來算

求next函式本身是乙個遞推的過程

前面符合條件的最大子串

**實現:

#define	    maxstrlen		255

//最大串長

typedef

unsigned

char sstring[maxstrlen +1]

// 0號單元存放串的長度,255

// 0,1,2,3,...,255

1、串連線函式

主要運算是字串行的複製。

此時需要考慮三種情況,判斷是否需要截斷。

status concat

( sstring &t,sstring s1,sstring s2)

for(

int i =

1,i <= s2[0]

;i++

) t[0]

= s1[0]

+ s2[0]

;}else

if( s1[0]

< t[0]

)//超過了部分,但能完全覆蓋第乙個串

for(

int i =

1;i <= maxstrlen - s1[0]

;i++

) t[0]

= maxstrlen;

}else

//第乙個就超過了

t[0]

= maxstrlen;

}return ok;

}

2、求子串

substring( & sub , s , pos , len )

將串 s 中從第 pos 個字元開始,長度為 len 的字串序列複製到 sub 中。

難點是判斷輸入引數是否正確。

status substring

( sstring &sub,sstring s,

int pos,

int len )

sub[1.

.. len]

= s[pos ...

(pos + len -1)

];sub[0]

= len;

return ok;

}

資料結構之串

串string 由零個或多個字元組成的有限序列,又名叫字串 串的比較是通過組成串的字元之間的編碼來進行比較的,而字元的編碼指的是字元在對應的字符集中的序號 ascii是american standard code for information interchange縮寫 常用字元標準ascii編碼...

資料結構之串

串由零個或多個字元組成的有限序列,又名叫字串。串中字元數目n是成為串的長度,零個字元的串稱為空串。adt 串 string data 串中元素僅由乙個字元組成,相鄰元素具有前驅和後繼關係。operation strassign t,chars 生成乙個其值等於字串常量chars的串t。strcopy...

資料結構之串

定義 1 串是由零個或多個字元組成的有限序列,又名叫字串。2 字串簡稱串,是一種特殊的線性表,它的資料元素僅由乙個字元組成。概念 1 長度 串中字元的個數,稱為串的長度。2 空串 長度為零的字串稱為空串。3 空格串 由乙個或多個連續空格組成的串稱為空格串。4 串相等 兩個串相等,是指兩個串的長度相等...