第九周 專案四 廣義表演算法庫及應用(1)

2021-07-24 07:46:49 字數 2417 閱讀 4110

問題:

/*檔名稱:專案4-1.cbp 

作 者:陳朋

完成日期:2023年11月3日 

版 本 號:v1.0 

問題描述:(1)建立廣義表演算法庫,包括: 

① 頭文glist.h,定義資料型別,宣告函式; 

② 原始檔glist.cpp,實現廣義表的基本運算,主要演算法包括: 

int gllength(glnode *g); //求廣義表g的長度 

int gldepth(glnode *g); //求廣義表g的深度 

glnode *creategl(char *&s); //返回由括號表示法表示s的廣義表鏈式儲存結構 

void dispgl(glnode *g); //輸出廣義表g 

③ 設計main函式,測試上面實現的演算法 

輸入描述:無 

程式輸出:測試資料 */

[cpp]view plain

copy

#ifndef glist_h_included

#define glist_h_included

#include 

#include 

typedef

char

elemtype;  

typedef

struct

lnode  

val;  

struct

lnode *link;         

//指向下乙個元素

} glnode;                       //廣義表節點型別定義

intgllength(glnode *g);        

//求廣義表g的長度

intgldepth(glnode *g);     

//求廣義表g的深度

glnode *creategl(char

*&s);     

//返回由括號表示法表示s的廣義表鏈式儲存結構

void

dispgl(glnode *g);                 

//輸出廣義表g

#endif // glist_h_included

glist.h是廣義表

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

[cpp]view plain

copy

#include "glist.h"

intgllength(glnode *g)     

//求廣義表g的長度

return

n;  

}  int

gldepth(glnode *g)      

//求廣義表g的深度

g1=g1->link;            //使g1指向下乙個元素

}  return

(max+1);          

//返回表的深度

}  glnode *creategl(char

*&s)      

//返回由括號表示法表示s的廣義表鏈式儲存結構

else

if(ch==

')')  

g=null;                     //遇到')'字元,g置為空

else

if(ch==

'#')               

//遇到'#'字元,表示為空表

g=null;  

else

//為原子字元

}  else

//串結束,g置為空

g=null;  

ch=*s++;                            //取下乙個字元

if(g!=null)                        

//串未結束,繼續構造兄弟節點

return

g;                           

//返回廣義表g

}  void

dispgl(glnode *g)                  

//輸出廣義表g

if(g->link!=null)  

}  }  

glist.cpp對應

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

[cpp]view plain

copy

#include "glist.h"

intmain()    

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

執行結果:

第九周專案四 廣義表演算法庫

完成日期 2015年11月4日 版 本 號 v1.0 問題描述 1 建立廣義表演算法庫,包括 頭文glist.h,定義資料型別,宣告函式 原始檔glist.cpp,實現廣義表的基本運算,主要演算法包括 int gllength glnode g 求廣義表g的長度 int gldepth glnode...

第九周專案四(廣義表演算法庫)

問題及 all right reserved.檔名稱 廣義表演算法庫 cpp 完成日期 2016年10月27日 版本號 v1.0 廣義演算法庫採用程式的多檔案組織形式 輸入描述 廣義表 程式輸出 廣義表的深度和長度 include include glist.h int main include i...

第九周 專案四 廣義表演算法庫

問題及 all right reserved.檔名稱 廣義表演算法庫 cpp 完成日期 2015年10月27日 版本號 v1.0 廣義演算法庫採用程式的多檔案組織形式 輸入描述 廣義表 程式輸出 廣義表的深度和長度 include include glist.h int main include i...