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

2021-07-06 06:58:00 字數 3590 閱讀 9135

問題及**:

檔名稱:main.cpp  listring.cpp  listring.h

問題描述:

1、標頭檔案listring.h中定義資料結構並宣告用於完成基本運算的函式。對應基本運算的函式包括:

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);  //輸出串

2、在sqstring.cpp中實現這些函式

3、在main函式中完成測試,包括如下內容:

(1)建立串s:abcdefghijklmn和串s1:123

(2)輸出串s和s1

(3)輸出串s的長度

(4)在串s的第9個字元位置插入串s1而產生串s2

(5)輸出串s2

(6)刪除串s第2個字元開始的5個字元而產生串s2

(7)輸出串s2

(8)將串s第2個字元開始的5個字元替換成串s1而產生串s2

(9)輸出串s2

(10)提取串s的第2個字元開始的10個字元而產生串s3

(11)輸出串s3

(12)將串s1和串s2連線起來而產生串s4

(13)輸出串s4

**:1.標頭檔案:listring.h,包含定義鏈隊資料結構的**、巨集定義、要實現演算法的函式的宣告

typedef struct snode

listring;

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); //輸出串

2.原始檔:listring.cpp,包含實現各種演算法的函式的定義

#include #include #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");

}

3.main.cpp

#include #include "listring.h"

int main()

執行結果:

知識點總結:

多檔案組織實現了鏈串的基本運算,包括賦值,複製,判斷串是否相等,插入串,求子串,刪除串,替換串等演算法。

第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 建立鏈串的演算法庫

問題 檔名稱 專案2.cbp 作 者 王聰 完成日期 2015年10月19日 版 本 號 v1.0 問題描述 定義鏈串的儲存結構,實現其基本運算,並完成測試。輸入描述 無 程式輸出 測試資料 架構 void strassign listring s,char cstr 字串常量cstr賦給串s vo...