動態字串的儲存結構的實現

2021-09-25 15:25:37 字數 1081 閱讀 7137

/**

*畢竟這只是簡單的串的鏈式儲存結構,不過不同的物件操作不一樣

*在此為了簡化操作,很多選單啊,選擇結構之類的都省去了,這些都可以在之前的一些鍊錶的基本的錯中

*可以得到的仔細的結果,鍊錶的操作是特別的重要的 ,尤其是鍊錶的儲存結構鏈式儲存結構涉及到開闢空間

*位址的傳遞,指標等操作,所以在此有必要仔細研究這些,這是我系統的重新對資料結構重新編寫一遍的結果

*純屬於個人的理解和分析的結果

*/效果:

*鏈式的串儲存結構的實現 **/

#include

#include

#include

using namespace std;

/***串的動態陣列結構體的定義

*/typedef structdstring ;

/***初始化操作

*/dstring * initiate(dstring *s,int max,char *string)

cout

for(int i = 0 ;i length ;i++)

s->length = s->length + t->length;

cout<

s->length = s->length - len;

return 1;

} }

/***取子串操作 **/

int substring(dstring *s,int pos,int len ,dstring *t)

t->length =len;

return 1;

} }

void output(dstring *s)

cout**

*撤銷操作來釋放陣列空間

**/

void destroy(dstring *s){

free(s->str);

s->maxlength = 0;

s->length = 0;

cout<

動態字串結構的一些演算法實現

先把字串的所有操作的函式和資料結構寫出來 dstring.h 以上是串的幾個最基本的操作,包括了初始化void initiate dstring s,int max,char string 插入 int insert dstring s,int pos,dstring t 刪除 int delete...

Redis的簡單動態字串實現

redis 沒有直接使用 c 語言傳統的字串表示 以空字元結尾的字元陣列,以下簡稱 c 字串 而是自己構建了一種名為簡單動態字串 dynamic string,sds 的抽象型別,並將sds用作 redis 的預設字串表示。sds簡單動態字串資料結構如下 1 typedef char sds 23 ...

Redis 字串的資料結構之動態字串 SDS

總結 struct sdshdr 效率差異 和c字串不同,因為sds在len屬性中記錄了sds本身的長度,所以獲取乙個sds長度的複雜度僅為o 1 緩衝區溢位 空間預分配策略與惰性空間釋放策略 當sds修改後的長度小於1mb時,將會預分配大小和當前len一樣的空間 free len 也就是使空間增長...