第九周專案4 廣義表演算法庫及應用

2021-07-23 23:58:07 字數 2190 閱讀 1880

/*  

檔名稱:廣義表演算法庫(1).cpp  

作    者:張雯婧 

完成日期:2023年10月24日  

版 本 號: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函式,測試上面實現的演算法   

輸入描述:   若干測試資料。  

程式輸出:  廣義表的深度。  

*/

標頭檔案glish.h

typedef char elemtype;  

typedef struct lnode  

val;  

struct lnode *link;         //指向下乙個元素  

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

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

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

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

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

原始檔glish.cpp

#include #include #include "glist.h"  

int gllength(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)  

}  }

main.cpp

#include #include "glist.h"  

int main()  

執行結果

知識點總結 

廣義表的長度,深度、及格式化輸出。

學習心得

廣義表的遞迴呼叫用的比較多,實現起來雖說思路很清晰,但是實際理解是有一定的難度的.

第九周專案4 廣義表演算法庫及應用

檔名稱 第9周專案4 廣義表演算法庫 4.1 cpp 作 者 高露 完成日期 2015年11月6日 版 本 號 v1.0 問題描述 1 建立廣義表演算法庫,包括 頭文glist.h,定義資料型別,宣告函式 原始檔glist.cpp,實現廣義表的基本運算,主要演算法包括 int gllength gl...

第九周專案4 廣義表演算法庫及應用

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

第九周 專案4 廣義表演算法庫及應用

問題描述及 檔名稱 第9周專案4 廣義表演算法庫 4.1 cpp 作 者 劉春彤 完成日期 2016年10月25日 版 本 號 v1.0 問題描述 1 建立廣義表演算法庫,包括 頭文glist.h,定義資料型別,宣告函式 原始檔glist.cpp,實現廣義表的基本運算,主要演算法包括 int gll...