資料結構實踐 順序串演算法

2021-07-05 18:03:51 字數 1793 閱讀 9542

本文針對資料結構基礎系列網路課程(4):串實踐專案。

【專案 - 順序串演算法】

採用順序儲存方式儲存串,實現下列演算法並測試:

(1)試編寫演算法實現將字串s中所有值為c1的字元換成值為c2的字元:

void trans(sqstring *&s, char c1, char c2);

(2)試編寫演算法,實現將已知字串所有字元倒過來重新排列。如abcdef改為fedcba。

void invert(sqstring &s)

(3)從串s中刪除其值等於c的所有字元。如從message中刪除』e』,得到的是mssag。

void dellchar(sqstring &s, char c)

(4)有兩個串s1和s2,設計乙個演算法求乙個這樣的串,該串中的字元是s1和s2中公共字元。所謂公共子串,是由在s1中有,且在s2中也有的字元構成的字元。例s1為」message」,s2為」agent」,得到的公共子串是」eage」。

sqstring commchar(sqstring s1,sqstring s2);

[參考解答] (標頭檔案sqstring.h見順序串演算法庫)

(1)試編寫演算法實現將字串s中所有值為c1的字元換成值為c2的字元:

void trans(sqstring *&s, char c1, char c2);

參考:

#include 

#include "sqstring.h"

void trans(sqstring &s, char c1, char c2)

(2)試編寫演算法,實現將已知字串所有字元倒過來重新排列。如abcdef改為fedcba。

void invert(sqstring &s)

參考:

將字串中的第乙個元素與最後乙個元素進行交換,第二個元素與倒數第二個元素進行交換,以此類推,將所有的字元進行交換,最後將字串反序。

#include 

#include "sqstring.h"

void invert(sqstring &s)

}int main()

(3)從串s中刪除其值等於c的所有字元。如從message中刪除』e』,得到的是mssag。

void dellchar(sqstring &s, char c)

參考:從頭到尾掃瞄s串,對於其值為c的元素採用移動的方式進行刪除。

#include 

#include "sqstring.h"

void dellchar(sqstring &s, char c)

s.length -= k;

}int main()

(4)有兩個串s1和s2,設計乙個演算法求乙個這樣的串,該串中的字元是s1和s2中公共字元。所謂公共子串,是由在s1中有,且在s2中也有的字元構成的字元。例s1為」message」,s2為」agent」,得到的公共子串是」eage」。

sqstring commchar(sqstring s1,sqstring s2);

參考:對於s1中的每乙個字元,檢視在s2中是否出現,如果出現,則加到結果字串中。

#include 

#include "sqstring.h"

sqstring commchar(sqstring s1,sqstring s2)

}s3.length=k;

return s3;

}int main()

資料結構實踐 順序串演算法

專案 順序串演算法 採用順序儲存方式儲存串,實現下列演算法並測試 1 試編寫演算法實現將字串s中所有值為c1的字元換成值為c2的字元 void trans sqstring s,char c1,char c2 2 試編寫演算法,實現將已知字串所有字元倒過來重新排列。如abcdef改為fedcba。v...

演算法與資料結構之順序串

include include define maxsize 100 typedef struct 非緊縮格式的順序串的定義 sqstring void strassign sqstring s 將字串複製給串 sqstring concate sqstring s 串的連線 void insstr...

演算法與資料結構之順序串

include include define maxsize 100 typedef struct 非緊縮格式的順序串的定義 sqstring void strassign sqstring s 將字串複製給串 void dispstr sqstring s 輸出串的所有元素 printf n vo...