c資料結構的字串查詢的Brute Force演算法

2022-09-08 16:51:24 字數 1239 閱讀 2482

#include

#include

#include

//定義字串的結構體

typedef struct dstring;

//1.初始化操作

//初始化操作用來建立和儲存串的動態陣列空間以及給相關的資料域賦值

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

}//2.插入子串操作

int insert(dstring *s,int pos,dstring t)else

for(i=s->length-1;i>=pos;i--)

//在pos位置進行插入操作

for(i=0;i

s->str[pos+i]=t.str[i];//插入

}s->length=s->length+t.length;//置新的資料元素的位置

return 1;}}

//3.刪除子串操作

int delete(dstring *s,int pos,int len)else if(pos<0||len<0||pos+len>s->length)else

s->length=s->length-len;//置新的元素的個數

return 1;}}

//4.取子串操作

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

//當t的空間不夠的時候。在進行從新分配空間

if(len>t->maxlength)

for(i=0;i

t->str[i]=s->str[pos+i];//取子串

}t->length=len;

return 1;

}//5.撤銷操作

void destroy(dstring *s)

//brute-force演算法函式的設計

//i變數指示主串s當前比較字元的下標

//用j變數表示子串t當前比較字元的下標

int bfindex(dstring s,int start,dstring t)else

}if(j==t.length)else

return v;

}int main()

brute-force演算法簡單易於理解,在大部分的情況下。該演算法的效率較好,可是在有些情況下,brute-force演算法的時間效率不高,主要原因是:在主串和子串已有相當多個字元比較相等的情況下。僅僅要有乙個字元不相等。便須要把主串的比較位置回退。

C 資料結構 字串

1 菜鳥教程 c 字串 2 3 4 官網教程 5 教程中的注釋 6 詳細的串定義與模式匹配演算法 1 串的定義 串 字串的簡稱 是由零個或多個字元組成的有限序列,一般記為s a1a2a3 an 其中ai可以是字母,數字或者其他字元,零個字元的串稱為空串。串中 任意個連續的字元組成的子串行 稱為該串的...

資料結構 c 字串的處理

1.字串的逆轉 using system class output string arry new string arrychar console.write arry console.readkey 2.輸入一字串要求輸出後只有數字和字母,其它的空格特殊字元都不要 using system cla...

資料結構 字串

1 字串 include string.h include stdio.h include stdlib.h include math.h include time.h define ok 1 define error 0 define true 1 define false 0 define ma...