第8周專案2 建立鏈串的演算法庫

2021-07-05 23:45:07 字數 2964 閱讀 4987

問題:

/*

檔名稱:專案2.cbp

作    者:王聰

完成日期:2023年10月19日

版 本 號:v1.0

問題描述:定義鏈串的儲存結構,實現其基本運算,並完成測試。 

輸入描述:無

程式輸出:測試資料

*/

架構:

void strassign(listring *&s,char cstr);   //字串常量cstr賦給串s

void strcopy(listring *&s,listring *t); //串t複製給串s

bool strequal(listring *s,listring *t); //判串相等

int strlength(listring *s); //求串長

listring *concat(listring *s,listring *t);  //串連線

listring *substr(listring *s,int i,int j);  //求子串

listring *insstr(listring *s,int i,listring *t) ;   //串插入

listring *delstr(listring *s,int i,int j);  //串刪去

listring *repstr(listring *s,int i,int j,listring *t);  //串替換

void dispstr(listring *s);  //輸出串

#endif // listring_h_included

listring.h是鏈串的乙個演算法庫集合,裡面宣告了常用到的各個功能函式。

#include "listring.h"

void strassign(listring *&s,char cstr)    //字串常量cstr賦給串s

r->next=null;

}void strcopy(listring *&s,listring *t)  //串t複製給串s

r->next=null;

}bool strequal(listring *s,listring *t)  //判串相等

if (p==null && q==null)

return true;

else

return false;

}int strlength(listring *s)  //求串長

return i;

}listring *concat(listring *s,listring *t)   //串連線

p=t->next;

while (p!=null)         //將t的所有節點複製到str

r->next=null;

return str;

}listring *substr(listring *s,int i,int j)   //求子串

r->next=null;

return str;

}listring *insstr(listring *s,int i,listring *t)     //串插入

while (p1!=null)                    //將t的所有節點複製到str

while (p!=null)                     //將*p及其後的節點複製到str

r->next=null;

return str;

}listring *delstr(listring *s,int i,int j)   //串刪去

for (k=0;knext;

while (p!=null)                 //將*p及其後的節點複製到str

r->next=null;

return str;

}listring *repstr(listring *s,int i,int j,listring *t)   //串替換

for (k=0;knext;

while (p1!=null)                //將t的所有節點複製到str

while (p!=null)                 //將*p及其後的節點複製到str

r->next=null;

return str;

}void dispstr(listring *s)   //輸出串

printf("\n");

}

listring.cpp對應

listring.h中宣告的各個功能函式,給出了各個功能函式的實現方法。

#include "listring.h"

int main()

main.cpp中根據需要新增各個函式,以便實現相應功能。

執行結果:

知識點總結:

定義鏈串演算法庫的大體思路與順序串一樣。

學習心得:

在進行眾多字串資料的處理中鏈串的優點就體現出來了,相比順序串它的節點在記憶體無限的情況下不受限制。

在順序串中用到的思路可以在鏈串的建立中直接用,比如插入演算法中,都是先把第乙個串要插入的節點前的所有節點搬到新串中,再將第二個串接到新串後,最後將第乙個串插入的節點後的所有節點搬到新串後。我們最重要的是掌握這種思考方法。

第8周 專案2 建立鏈串演算法庫

1.標頭檔案 listring.h,包含定義鏈隊資料結構的 巨集定義 要實現演算法的函式的宣告 typedef struct snode listring void strassign listring s,char cstr 字串常量cstr賦給串s void strcopy listring s...

第8周 專案2 建立鏈串的演算法庫

檔名稱 1.pp 完成日期 2015年10月19日 問題描述 建立鏈串的演算法庫 include include define listring h included typedef struct snode listring void strassign listring s,char cstr ...

第8周專案2 建立鏈串的演算法庫

問題及 檔名稱 main.cpp listring.cpp listring.h 問題描述 1 標頭檔案listring.h中定義資料結構並宣告用於完成基本運算的函式。對應基本運算的函式包括 void strassign listring s,char cstr 字串常量cstr賦給串s void ...