簡述 資料結構 字串(C語言實現)

2021-08-19 05:19:49 字數 1746 閱讀 6297

second60 20180422

串,即字串,是由零個或多個字元組成的有限序列。

空串:沒有字元。

串長:字元的個數。

adt string

資料物件:

d=資料關係:

r=基本運算:

strassign(&s, cstr): 賦值

strcopy(&s, t): 複製

strequal(s,t): 比較

strlength(s): 串長

concat(s, t): 串連線

substr(s,i,j): 求子串

insstr(s1,i,s2): 插入

delstr(s,i,j): 刪除

repstr(s,i,j,t): 替換

dispstr(s): 列印

}adt string

typedef struct

sqstring;

演算法**如下,c語言實現:

#include "stdio.h"

#define maxsize 1024

typedef int elemtype;

typedef struct

sqstring;

void strassign(sqstring *s,char cstr)

else

}s->len  = i;

}void strcopy(sqstring *s,sqstring *t)

s->len = t->len;

}int strequal(sqstring *s,sqstring *t)}}

return result;

}int strlength(sqstring *s)

/*這裡沒有判斷字串超過maxsize情況

現實專案中必須判斷

*/sqstring concat(sqstring *s,sqstring *t)

sqstring substring(sqstring *s,int i ,int j)

sqstring insstr(sqstring *s1, int i, sqstring *s2)

sqstring delstr(sqstring *s,int i,int j)

sqstring repstr(sqstring *s,int i,int j, sqstring *t)

void dispstr(sqstring *s)

printf("\n");}}

鏈串與一般鍊錶類似。主要區別在於,鏈串的乙個結點,可以儲存乙個或多個字元。

以結點大小為1,資料型別定義

typedef struct snode

listring;

演算法實現,c語言:

因為跟鍊錶型別,這裡就不在實現**,原理也就是鍊錶與鍊錶間的操作,參考鍊錶實現

後面有時間再補上**

字串,可以說是程式中,最重要的資料結構之一。因為無論什麼語言,還是最後的底層邏輯,很多都會轉到最後,為字串的操作。

在學習c++時,很常用的,就是

std::string

,但不少人只知道字串,但產不了解字串的原理,本文的內容,講的串,其實就是字串的原理及在順序和鍊錶中的實現。學習後會對字串有深刻的了解,而不僅僅停留在使用

std:string

中。簡單地說,字串,其實就是一串char型別的陣列,或鍊錶。

(注:**中可能有些少了判斷空指標或少了某些條件,時間比較倉促,如果你拿**去用,記得一定要補上那些條件,見諒)

資料結構 C語言實現串

include stdlib.h include stdio.h define true 1 define false 0 define maxlen 255 typedef int status typedef structstring 串的賦值 void strassign string s,c...

資料結構 串(C語言實現)

一.串的定義 串是由零個或者多個字元組成的有限序列。串中任意連續的字元組成的子串行稱為該串的字串,包含字串的串稱為主串。在c語言中,串可以使用如下語句定義 char str hello world 上面的串裡面一共有12個字元,但是編譯器以 0 作為字串結束標誌,所以陣列str的長度為13,串str...

簡述 資料結構 線性表 c語言實現

second60 20180422 線性表是具有相同特性的資料元素的乙個有限序列。adt list 資料物件 d 資料關係 r 基本運算 initlist l 初始化線性表 destroylist l 銷毀線性表 listempty l 線性表是為空 listlength l 線性表的長度 disp...