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

2021-07-07 05:22:17 字數 2263 閱讀 4821

/* 

檔名稱:專案4-1.cbp

作 者:劉晨筱

完成日期:2023年11月14日

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

輸入描述:無

程式輸出:測試資料

*/

glist.h檔案**:
#ifndef glist_h_included  

#define glist_h_included

#include #include 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

#endif // glist_h_included

glist.cpp檔案**:

#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 "glist.h"  

int main()

執行結果:

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

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

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

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

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

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