資料結構之變長串的定義和簡單實現

2021-10-05 14:41:12 字數 1908 閱讀 5625

一、串與字串的比較

1、串:一系列有限字元的集合

2、字串:程式語言種表示文字的資料型別。它也是一系列有限字元的集合。

但從概念上發現兩者沒有多大的區別。但我們往往在處理串的時候,是有它的特殊結構,處理字串的時候是打包在一起,用cha*來處理

二、串的分類

串分為一般分為定長順序串和變長串

1、定長順序串

#define maxsize 10

struct string

;

2、變長串

struct string

;

三、變長串的實現1、結構

string str;

//定義的乙個串

它的結構如下所示:

整體結構定義如下:

struct string

string,

*pstring;

2、初始化(initstring)

}3、賦值(strassign)

(1)字串為空

(2)字串不為空

當串中已有字元"hello"時,我們插入「hello world」時,要先將原來記憶體所指向的字串釋放掉,再重新開闢新的記憶體,最後將新的資料賦值。,然後將total和cur重新修改。如上圖所示

void

strassign

(pstring ps,

char

* p)if(

!len)

//字串是null

else

//字串非空

ps->total = len;

ps->cur = len;

}}

4、合併兩個字串

void

strsub

(pstring ps, pstring p1, pstring p2)if(

!len1 &&

!len2)

//len1==0&&len2==0 (p1,p2)為空串

else

for(j =

0; j < len2;j++

) ps->total =

(len1 + len2)

; ps->cur =

(len +len2);}

}

5、銷毀

void

destrioyed

(pstring ps)

ps->total = ps->cur =0;

}

5、列印函式

void

strprint

(pstring ps)

printf

("\n");

}

簡單的資料結構

題目描述 慄醬有一天在網上衝浪的時候發現了一道很有意思的資料結構題。該資料結構形如長條形。一開始該容器為空,有以下七種操作。1 a從前面插入元素a 2 從前面刪除乙個元素 3 a從後面插入乙個元素 4 從後面刪除乙個元素 5 將整個容器頭尾翻轉 6 輸出個數和所有元素 7 對所有元素進行從小到大排序...

資料結構定義和演算法 排序

最好情況 最壞情況 平均情況時間複雜度 排序資料量比較小的時候要考慮 係數 常數 低階 比較次數和交換次數 針對排序演算法的空間複雜度,引入原地排序的概念,原地排序演算法就是指空間複雜度為o 1 的排序演算法 排序的序列中存在等值元素,如果經過排序後,相等元素之間原有的順序不變,就說明這個排序演算法...

資料結構的定義和研究的內容

定義 按照某種邏輯關係組織起來的一批資料,用一定的儲存方式儲存在計算機的儲存器中,並在這些資料上定義乙個運算的集合,就成為乙個資料結構。資料結構研究的內容如下 1 資料的邏輯結構 按照某種邏輯關係將資料組織好,即邏輯結構。2 資料的儲存結構 將資料及資料之間的關係儲存到儲存區域中,即儲存結構。3 資...