本文參考自《大話資料結構》串是由零個或多個字元組成的有限序列,又名叫字串。
adt 串(string)
data
串中元素僅由乙個字元組成,相鄰元素具有前驅和後繼關係。
operation
strassign(t,*chars):生成乙個其值等於字串常量chars的串t
strcopy(t,s):串s存在,由串s複製得串t
clearstring(s):串s存在,將串清空
stringempty(s):若串s為空,返回true,否則返回false
strlength(s):返回串s的元素個數,即串的長度
strcompare(s,t):若s>t,返回值》0,若s=t,返回0,若s/* t為非空串,若主串s中第pos個字元之後存在與t相等的子串,則返回第乙個這樣的子串在s中的位置,否則返回0 */
intindex
(string s, string t,
int pos)
}return0;
//若無子串與t相等,返回0
}
#include
#include
#include
#define error 0
#define ok 1
#define maxsize 10000
typedef
int status;
struct string
;/* 生成乙個值等於字串常量chars的串t */
string strassign
(char
* chars)
/* 字串拷貝 */
status strcopy
(string* t, string* s)
/*如果串存在,將串清空*/
status clearstring
(string* s)
/* 若串s為空,返回true,否則返回false */
bool stringempty
(string* s)
/* 返回串s的元素個數,即串的長度 */
intstrlength
(string* s)
/* 若s>t,返回值》0,若s=t,返回0,若sint
strcompare
(string* s, string* t)
return0;
}/* 用t返回由s1和s2聯接而成的新串 */
status concat
(string* t, string* s1, string* s2)
/* 串s存在,1<=pos<=strlength(s),且0<=len<=strlength(s)-pos+1,用sub返回串s的第pos個字元起長度為len的子串 */
status substring
(string* sub, string* s,
int pos,
int len)
sub->length = len;
return ok;
}/* 串s和t存在,t是非空串,1<=pos<=strlength(s)。
若主串s中存在和串t值相同的子串,
則返回它在主串s中第pos個字元之後第一次出現的位置,
否則返回0 */
intindex
(string* s, string* t,
int pos)
if(j == t->length)
break;}
if(i != s->length-t->length)
return i+1;
}/* 串s、t和v存在,t是非空串。用v替換主串s**現的所有與t相等的不重疊的子串 */
status replace
(string* s, string* t, string* v)
if(j == t->length)
}else
}for
(;ilength;i++
)for
(i=0
;i) s->length = k-1;
return ok;
}/* 串s和t存在,1<=pos<=strlength(s)+1。在串s的第pos個字元之前插入串t */
status strinsert
(string* s,
int pos, string* t)
for(j=
0;j) s->length = s->length+t->length;
return ok;
}/* 串s存在,1<=pos<=strlength(s)-len+1。從串s中刪除第pos個字元起長度為len的子串 */
status strdelete
(string* s,
int pos,
int len)
s->length-
=len;
return ok;
}
關鍵路徑 C語言簡單實現
本文參考自 大話資料結構 對關鍵路徑的理解參考自 在乙個表示工程的帶權有向圖中,用頂點表示事件,用有向邊表示活動,用邊上的權值表示活動的持續時間,這種有向圖的邊表示活動的網,我們稱之為aoe網。我們把aoe網中沒有入邊的頂點稱為始點或源點,沒有出邊的頂點稱為終點或匯點。儘管aoe網和aov網都是用來...
C 語言單鏈表的實現(簡單實現)
簡單的實現單鏈表的增刪遍歷操作,還有一些功能需要實現。我感覺難理解的時候畫圖來搞清楚邏輯,先畫個圖比劃就行。author gong single linked list 增 刪 遍歷 include include 從新定義節點的資料域資料型別,以後好修改具體的鍊錶 typedef int data...
力扣125 驗證回文串 C語言實現 簡單題
傳送門 給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫。說明 本題中,我們將空字串定義為有效的回文串。示例 1 輸入 a man,a plan,a canal panama 輸出 true 示例 2 輸入 race a car 輸出 false bool ispalin...