資料結構 串的性質和基本操作(一)

2021-12-29 20:33:35 字數 1487 閱讀 3160

串(string):由零個或多個字元組成的有限序列。記為:s=』a1a2…an』(n≥0)

s為串名, 』a1a2…an』為串值,n為串的長度。

子串在主串中的位置:以子串的第乙個字元在主串中的位置來表示

串相等:當且僅當兩個串的串值相等(兩個串的長度相等,並且各個對應的字元也都相等

adt string

r=基本操作:……

}其中 d 是資料物件 r 是資料關係

串是有限長的字串行,由一對單引號相括,如: 「a string」

串賦值:strassign(&s,chars) 求串長:strlength(s) 串判等:strcompare(s,t) 串聯接:concat(&t,s1,s2) 求子串:substring(&sub,s,pos,len) 子串定位:index(s,t,pos) 置換:replace(&s,t,v) 插入子串:strinsert(&s,pos,t)

刪除子串:strdelete(&s,pos,len)

index(s,t,pos)是指 判斷 t 串 在 s串的位置

分析:可利用串判等、求串長和求子串等操作實現來實現

演算法:int index (string s, string t, int pos)

} return 0;

}如果 return 0 就說明 s中不存在與t相等的子串

t為非空串。若主串s中第pos個字元之後存在與t相等的子串,則返回第乙個這樣的子串在s中的位置,否則返回0

1.求子串substring(&sub,s,pos,len)

substring( sub, 「commander」, 4, 3)

求得 sub = ?

』 man 』

從 「commander」 的第4個元素開始取3個元素

substring( sub, ?commander?, 1, 9)

求得 sub = ?

』 commander 』

從 「commander」 的第1個元素開始取9個元素

substring( sub, 「commander」, 9, 1)

求得 sub = ?

』 r 』

從 「commander」 的第9個元素開始取1個元素

substring(sub, ?commander?, 4, 7)

求得 sub = ?

』 mander 』

substring(sub, 「beijing, 7, 2)

求得 sub = ?

』 g 』

從 「commander」 的第9個元素開始取1個元素

substring(sub, 「student」, 5, 0)

求得 sub = ?

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

串的基本操作和線性表有很大差別:

1.**性表的基本操作中,大多以「單個元素」作為操作物件

2.在串的基本操作中,通常以「串的整體」作為操作物件

資料結構 串的性質和基本操作(一)

串 string 由零個或多個字元組成的有限序列。記為 s a1a2 an n 0 s為串名,a1a2 an 為串值,n為串的長度。子串在主串中的位置 以子串的第乙個字元在主串中的位置來表示 串相等 當且僅當兩個串的串值相等 兩個串的長度相等,並且各個對應的字元也都相等 adt string r 基...

資料結構 棧的基本概念和性質

棧 stack 又名堆疊,它是一種運算受限的線性表。限定僅在表尾進行插入和刪除操作的線性表。這一端被稱為棧頂,相對地,把另一端稱為棧底。向乙個棧插入新元素又稱作進棧 入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素 從乙個棧刪除元素又稱作出棧或退棧,它是把棧頂元素刪除掉,使其相鄰的元...

資料結構之串的基本操作

1 串基本術語 空串 空串指長度為0的串,其不包含任何字元 空格串 不同於空串,它是由乙個或多個空格構成的串。雖然是空格,但在計算長度時要把空格的個數算在內 串比較 串的大小比較時以字元的ascii碼值作為依據。2 串基本操作 賦值操作 連線操作 求串長 竄的比較和求子串。3 串的儲存結構 順序儲存...