日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数据结构——字符串(未完)

發布時間:2025/3/19 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据结构——字符串(未完) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、相關概念

串(string):由零個或多個字符組成的有限序列,又稱字符串。
一般記作 s = “a1,a2……an” (n>0),其中,s為字符串的名稱,其值是用雙引號括起來的字符序列a1,a2……an。

串的長度:串中的字符數目n
空串:兩個字符的串,其長度為0,可用兩雙引號“”“”或希臘字母Φ表示。

特殊的串
空格串:只包含空格的串,不同于空串,其長度不為0。
子串與主串:串中任意個數的連續字符組成的子序列稱為該串的子串,相應地,包含子串的串稱為主串。子串在主串中的位置就是子串的第一個字符在主串中的序號。

2、串的比較

??串的比較是通過組成串的字符之間的編碼來進行的,而字符的編碼指的是字符在對應字符集中的序號。 即:從第一個字符開始,比較它們的編碼值的大小,直到有一方大于另一方為止。

常用編碼
????標準的ASCII編碼,由7位二進制數表示一個字符,總共可以表示128個字符。Unicode編碼,比較常用的是由16位的二進制數表示一個字符,Unicode的前256個字符與ASCII碼完全相同。

比較步驟:
給定兩個串:s=”a1a2……an”,t=”b1b2……bm”。當滿足以下條件之一時,s < t。
??1. n < m, 且 ai=bi( i = 1, 2, ……, n)。
??2. 存在某個k < min(m, n),使得ai=bi (i=l, 2, ……, k—1), ak < bk。

3、抽象數據類型

串的操作中更加注重對子串的操作,而不是對于單個字符。

ADT 串(string) Data串中元素僅由一個字符組成,相鄰元素具有前驅和后繼關系。 OperationStrAssign(T, *chars): 生成一個其值等于字符串常量chars的串T。StrCopy(T, S): 串S存在,由串S復制得串T。ClearString(S): 串S存在,將串清空。StringEmpty(S): 若串S為空,返回true,否則返回false。StrLength(S): 返回串S的元素個數,即串的長度。StrCompare(S, T): 若S>T,返回值>0,若S=T,返回0,若S<T,返回值<0。Concat(T, S1, S2): 用T返回由S1和S2聯接而成的新串。SubString(Sub, S, pos, len): 串S存在,1≤pos≤StrLength(S),且0≤len≤StrLength(S)-pos+1,用Sub返回串S的第pos個字符起長度為len的子串。Index(S, T, pos): 串S和T存在,T是非空串,1≤pos≤StrLength(S)。若主串S中存在和串T值相同的子串,則返回它在主串S中第pos個字符之后第一次出現的位置,否則返回0。Replace(S, T, V): 串S、T和V存在,T是非空串。用V替換主串S中出現的所有與T相等的不重疊的子串。StrInsert(S, pos, T): 串S和T存在,1≤pos≤StrLength(S)+1。在串S的第pos個字符之前插入串T。StrDelete(S, pos, len): 串S存在,1≤pos≤StrLength(S)-len+1。從串S中刪除第pos個字符起長度為len的子串。 endADT

4、串的存儲結構

4.1 串的順序存儲結構

一組地址連續的存儲單元來存儲串中的字符序列的。按照預定義的大小,為每個定義的串變量分配一個固定長度的存儲區。一般是用定長數組。‘\0’來表示串值的終結。

4.2 串的鏈式存儲結構

一個結點可以存放一個字符或者多個字符,最后一個結點若是未被占滿時,可以用#或其他非串值補全。

總結

以上是生活随笔為你收集整理的数据结构——字符串(未完)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。