資料結構 3 串

2021-09-26 08:14:54 字數 1183 閱讀 3942

串(string)是由零個或者多個字元組成的有限序列,又名叫字串。

adt 串(string)

data

串中元素僅由乙個字元組成,相鄰元素具有前驅和後繼關係。

operation

strassign(t,*chars):生成乙個其值等於字串常量chars的串t。

strcopy(t,s):把串s複製到串t。

clearstring(s)

stringempty(s)

strlength(s)

strcompare(s,t):若s>t,返回值》0;若s=t,返回0;若s用 『\0』 來表示串值的終結。即串的長度包括 『\0』 。

可以乙個結點存放乙個字元;

也可以乙個結點存放多個字元,最後乙個結點未被佔滿時,可以用 『#』 或其他非串值字元補全。

串一般都使用順序儲存結構。

對主串的每乙個字元作為子串開頭,與要匹配的字串進行匹配。

此方法較低效。

int index(string s,string t,int pos)

else

}if(j>t[0])

return i-t[0];

else

return 0;

}

對子串建乙個next陣列,記錄子串中各元素與子串開頭的相同情況。

next[j] =

注:next[j] 的值與 pj 無關,只與 pj 之前的元素有關。

例如next[j] = k,表示t[j]之前的k-1個元素和串t開頭的k-1個元素相同。

void get_next(string t,int *next)

else

j = next[j]; //與樸素匹配演算法的主要差別

} if(j>t[0])

return i-t[0];

else

return 0;

}

此法對next陣列進行了改良。

原next陣列,next[i] 的值與 t[i] 無關。

現看 t[i] 與其前面元素的相等情況。

void get_nextval(string t,int *nextval)

else

j = nextval[j];

}}

資料結構總結筆記3 串

串中元素邏輯關係與線性表的相同,串可以採用與線性表相同的儲存結構。define maxsize 100 typedef struct sqstring 串抽象資料型別 邏輯結構 基本運算 運算描述 串的基本運算如下 strassign s,cstr 將字串常量cstr賦給串s,即生成其值等於cstr...

資料結構3

1.列表概念 有序的容器,儲存多個元素 2.定義方式 變數 元素1,元素2,變數 list 元素1,元素2.特點 1.每個元素都有個 索引 預設從0開始 2.根據索引獲取對應的元素值 列表 索引 3.列表的操作 新增元素 列表.insert 索引,元素 在指定索引位置插入資料 列表.extend 新...

資料結構 串

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