資料結構 串

2021-09-10 05:32:10 字數 1412 閱讀 1189

(string)(或者字串)是由零個或多個字元組成的有限序列,一般記為

s=『a1a2…an』 (n>=0)

其中,s是串的名,用單引號括起來的字串行是串的值;ai(1<=i<=n)可以是字母、數字或者其他字元;串中字元的數目n稱為串的長度。零個字元的串稱為空串,它的長度為零。

串中任意個連續的字元組成的子串行稱為該串的子串。包含子串的串相應地稱為主串。通常稱子串在序列中的序號為該字元在串中的位置。子串在主串中的位置則以子串的第乙個字元在主串的位置來表示。

稱兩個串是相等的,當且僅當這兩個串的值相等。也就是說,只有當兩個串的長度相等,並且各個對應位置的字元都相等時才相等。

值得一提的是,串值必須用一對單引號括起來,但單引號本身不屬於串,它的作用只是為了避免與變數名或數的常量混淆而已。

串的抽象資料型別的定義如下:

adt string

資料關係:r1 =

基本操作:

strassign (&t, chars)

初始條件:chars 是字串常量。

操作如果:生成乙個其值等於chars的串t。

strcopy(&t,s)

初始條件:串s存在。

操作結果:由串s複製得串t。

strempty(s)

初始條件:串s存在。

操作結果:若s為空串,則返回true,否則返回false。

strcompare(s,t)

初始條件:串s和t存在。

操作結果:若s>t,則返回值》0;若s=t,則返回值=0;若s// *****=== adt string 的表示與實現 *****=

// -------- 串的堆分配儲存表示 --------

typedef struct hstring;

// -------- 基本操作的函式原型說明 --------

status strassign(hstring &t, char * chars);

// 生成乙個其值等於串常量 chars 的串t

int strlength(hstring s);

// 返回s的元素個數,稱為串的長度。

int strcompare(hstring s, hstring t)

// 若s>t,則返回值》0,若s=t,則返回值=0,若st,則返回值》0,若s=t,則返回值=0,若ss.length || len<0 || len>s.length-pos+1)

return error;

if (sub.ch) free(sub.ch); // 釋放舊空間

if (!len) // 空子串

else

return ok;

} // substring

資料結構 串

輸入乙個字串,按字典序列印出該字串中字元的所有排列。例如輸入字串abc,則列印出由字元a,b,c所能排列出來的所有字串abc,acb,bac,bca,cab和cba。結果請按字母順序輸出。我們求整個字串的排列,可以看成兩步 首先求所有可能出現在第乙個位置的字元,即把第乙個字元和後面所有的字元交換。第...

資料結構 串

串名 串值 串長 空串 空格串。字串的比較 字串模式匹配演算法 1.簡單字串模式匹配演算法 最簡單實現是用字串p的字元依次與字串t中的字元進行比較。實現思想是,首先將子串p從第0個字元起與主串t的第pos個字元起依次比較對應字元,如全部對應相等,則表明已找到匹配,成功終止。否則將子串p從第0個子串起...

資料結構 串

串 又稱字串 是一種特殊的線性表,它的每個結點僅由乙個字元組成。在早期的程式語言中,串僅在輸入或輸出中以直接量的形式出現,並不參與運算。隨著計算機的發展,串在文字編輯 詞法掃瞄 符號處理以及定理證明等許多領域得到越來越廣泛的應用。在高階語言中開始引入了串變數的概念,如同整型 實型變數一樣,串變數也可...