串(string):由零個或者多個字元組成的有限序列,又名字串。
一些概念:串無元素為空串,長度為零;串中任意個數連續字元組成的子串行稱為該串的子串,包含子串的串稱為主串。
1、串的比較
串的比較是通過組成串字元之間的編碼進行的,字元的編碼指的是字元在對應字符集中的序號。
計算機中常用的字元是使用標準ascii編碼,其有7位二進位制數表示乙個字元,總共可以表示128個字元。ascii擴充套件為8位可以表示256個字元,滿足以英語為主的國家。對於漢族等國家名族等,256顯然不夠。
因此有了unicode編碼,一般用16進製表示,約65萬個字元。為了與ascii相容,unicode的前256個字元與ascii完全相同。
一般串的比較可以用在排序的功能上,乙個應用例子就是字典裡面單次的排序。
2、串的抽象資料型別
串的邏輯結構與線性表很相似,不同之處在於串針對的是字符集。
串的基本操作與線性表有很大區別,線性表更關注的是單個元素的操作,比如查詢乙個元素,插入或者刪除乙個元素,但是串中更多的是查詢子串的位置、得到指定位置子串、替換子串等操作。
不同的高階語言,對於串的基本操作有不同的定義方法,但除了方法名稱外,實質是類似的。
3、串的儲存結構
同樣,分為順序儲存和鏈式儲存。
順序儲存,按照預定義大小分配固定長度的儲存區。
串的鏈式儲存結構:串的鏈式儲存中,乙個節點可以儲存乙個字元也可以儲存多個字元。
起始串的鏈式儲存結構在連線串與串操作時有一定的方便之外,不如順序儲存靈活,效能不如順序儲存結構
好。4、樸素的模式匹配演算法
在主串中查詢子串,m為主串長度,n為子串長度。
效率低5、kmp模式匹配演算法
自己看,似乎有點複雜,沒細看
資料結構筆記 第五章 串
adt 串 string data 串中元素僅由乙個字元組成,相鄰元素具有前驅和後繼關係。operation strassign t,chars 生成乙個其值等於字串常量chars的串t。strcopy t,s 串s存在,由串s複製得串t。clearstring s 串s存在,將串清空。string...
資料結構(第五章)
樹下 第一講一.堆 什麼是堆?在講堆之前,我們先看看什麼是優先佇列。優先佇列 是一種特殊的佇列,從名稱上看,優先,顧名思義,取出的元素是按照一定的優先順序出隊的,而不是元素進入佇列的先後順序。優先佇列的完全二叉樹表示 堆的兩個特性 結構性 用陣列表示的完全二叉樹。有序性 任一結點的關鍵字是其子樹所有...
資料結構筆記 第五章
一.樹的邏輯結構 樹是乙個有限的集合,集合中的元素稱為結點。1 結點的個數為0 稱為空樹。2 結點的個數為1 此節點稱為根節點。3 節點的個數大於1 則除了根結點以外的結點又可分為多個集合,每乙個集合本身其實質上也是一棵樹,並且是根節點的子樹。二.二叉樹的邏輯結構 1 二叉樹的定義 二叉樹首先必須是...