資料結構與演算法系列 串 串的基本概念與儲存結構

2021-06-19 03:23:45 字數 1098 閱讀 8900

串是一種特殊的線性表,他的資料物件是字符集和,它的每個元素都是乙個字元一系列相連的字元就組成了乙個字串,簡稱串

串的描述:s = "a1a2a3..........an" (n >= 0);(n稱為串的長度)

線性表的順序儲存結構和鏈式儲存結構對於串來說都是適用的。

串的靜態儲存結構採用順序儲存結構,簡稱順序串。

描述:

typedef struct stringstring;

當計算機按字單位遍址時,乙個儲存單元由若干個位元組組成,這是順序串儲存結構有

非緊縮儲存和緊縮儲存兩種方式。

假設計算機的字長為32位,即4個位元組。則乙個儲存單元僅存放乙個字元,就要浪費三個位元組。

優點:對串中的字元處理效率高,但對儲存空間的利用率低。

即盡可能的將多個字元存放在乙個字中。緊縮儲存放肆和對儲存空間利用效率高,但對串中的字元操作很不方便,需要花較多的處理時間。

串的鏈式儲存結構稱為鏈串,結構與鍊錶相似,鏈串中每個結點有兩個域,乙個是值域,存放字串中的字元,另乙個是指標域,用於存放後續結點的位址。

定義:

typedef struct nodelinkstrnode; //結點型別
構造方法:

1:開闢一塊連續的儲存空間,用於存放各串本身的值

2:再另外建乙個索引表,在索引表的專案中存放乙個串的名稱、長度和在儲存空間的起始位置。

3:在系統執行過程中,每當有一新的串出現時,系統就從存放串值的儲存空間中給新串分配一塊連續的空間,用於存放該串的值。另外在索引表中增加乙個索引項,該項紀錄該串的名稱、長度、起始位置。

資料結構與演算法系列 字典樹

一 背景 什麼是字典樹?trie樹,即字典樹,又稱單詞查詢樹或鍵樹,是一種樹形結構,是一種雜湊樹的變種。典型應用是用於統計和排序大量的字串 但不僅限於字串 所以經常被搜尋引擎系統用於文字詞頻統計。它的優點是 最大限度地減少無謂的字串比較,查詢效率比雜湊表高。trie的核心思想是空間換時間。利用字串的...

資料結構與演算法系列19 堆

堆其實就是一種特殊的樹,那它特殊在 呢?只要滿足了以下兩點的,我們就可以稱之為堆。1.堆是乙個完全二叉樹 2.堆中每乙個節點的值都必須大於等於 或者小於等於 其子樹中每個節點的值。這裡稍作解釋,對於第一點,我們前面講過,完全二叉樹就是除了最後一層,其他層的節點個數都是滿的,最後一層的節點都靠左排列。...

資料結構與演算法系列 Sunday演算法詳解

一 背景 sunday演算法是daniel m.sunday於1990年提出的字串模式匹配。其效率在匹配隨機的字串時比其他匹配演算法還要更快。sunday演算法的實現可比kmp,bm的實現容易太多。二 分析假設我們有如下字串 a lessons tearned in software te b so...