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

2021-07-24 02:58:57 字數 3374 閱讀 9296

/*  

* 煙台大學計算機與控制工程學院  

* 完成日期:2023年10月27日  

*  * 問題描述:鏈隊演算法庫採用程式的多檔案組織形式,包括兩個檔案: */

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

[csharp]view plain

copy

#ifndef listring_h_included

#define listring_h_included

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); 

//判串相等

intstrlength(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

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

[csharp]view plain

copy

#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

;  }  

intstrlength(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;k//讓p沿next跳j個節點

p=p->next;  

while

(p!=null)                 

//將*p及其後的節點複製到str

r->next=null;  

return

str;  

}  listring *repstr(listring *s,int

i,int

j,listring *t)   

//串替換

for(k=0;k//讓p沿next跳j個節點

p=p->next;  

while

(p1!=null)                

//將t的所有節點複製到str

while

(p!=null)                 

//將*p及其後的節點複製到str

r->next=null;  

return

str;  

}  void

dispstr(listring *s)   

//輸出串

printf("\n"

);  

}  

3.在同一專案(project)中建立乙個原始檔(如main.cpp),編制main函式,完成相關的測試工作。 例:

[csharp]view plain

copy

#include 

#include "listring.h"

intmain()    

執行結果:

學習總結:

鏈串中的乙個節點可以儲存多個字元。

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

檔名稱 shunxuchuan.cpp 完成日期 2015年10月30日 版本號 vc 6.0 問題描述 建立順序串演算法庫 輸入描述 無 程式輸出 子串,串連線,串刪除,串插入等 ifndef head h included define head h included include inclu...

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

檔名稱 26.cpp 作 者 尚文哲 完成日期 2017年10月23日 問題描述 定義順序串的儲存結構,實現其基本運算,並完成測試。輸入描述 各種串的輸入。程式輸出 各操作後的輸出。1 標頭檔案 typedef struct snode listring void strassign listrin...

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

檔名稱 main.cpp 作者 王超 完成日期 2015年10月19日 問題描述 建立鏈串的演算法庫 include include listring.h int main include include include listring.h void strassign listring s,ch...