一、串與字串的比較
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 資...