小螞蟻學習數據結構(15)——串的認識

概念:函數

    串(字符串):是由0個或多個字符組成的有限序列。spa

    由雙引號括起來 如: char str[] = "abcd";.net

串相等的條件:設計

    只有當兩個串的長度相等,而且各個對應位置的字符都相等時才相等。對象

串的邏輯結構:blog

    串和線性表是很是類似的。ci

    區別:串的數據對象約定是字符集。字符串


線性表的基本操做:get

    以「單個元素」爲操做對象博客


串的基本操做:

    以「串的總體」做爲操做對象

    在線性表中,一般是以其中的單個元素做爲操做對象的,好比刪除一個元素,插入一個元素。而在串中的基本操做,一般是以「串的總體」做爲操做對象的,好比:在串中查找某一個子串,求取一個子串,在串的某個位置插入一個子串以及刪除某一個子串等。

串的儲存表示:

    由於串是特殊的線性表,故其存儲結構與線性表的存儲結構相似,只不過組成串的結點是單個字符

定長順序存儲表示

    用一組地址連續的存儲單元依次存放串中的字符序列。

    缺點

        1,須要事先預約義串的最大長度,但這通常很難作到。

        2,因爲定義了串的最大長度,使得串的某些操做受限,由於一旦超出了最大長度,就會發生「截斷」,好比:連接、插入等操做。

解決辦法: 不設定最大長度,使用動態分配串的儲存空間。

堆分配存儲表示:

    使用 malloc和realloc等函數在堆中,動態分配存儲空間。不再用擔憂被截斷的問題。

    優勢:

        堆存儲結構既有順序存儲結構的特色,處理方便,操做中對串的長度又沒有任何限制,更加靈活。

        堆分配存儲表示爲高級程序設計語言說採用。

塊鏈存儲表示

    說白了,就是用單鏈表來儲存串。

    優勢:便於插入和刪除。

    缺點:空間利用率低。

    爲了提升空間利用率,可以使每一個節點存放多個字符,成爲塊鏈結構。這樣作空間複雜度更少一些,可是處理的複雜度會增長不少。


學PHP的小螞蟻 博客 http://my.oschina.net/woshixiaomayi/blog

相關文章
相關標籤/搜索