問題及**
/*
檔名稱:專案4-1.cbp
作 者:陳迪
完成日期:2023年10月26日
版 本 號: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()
執行結果
知識點總結
定義廣義表演算法庫。
學習心得
感覺很難,需要更好的去理解。
第9周專案四 廣義表演算法庫及應用(2)
問題及代嗎 檔名稱 專案4 2.cbp 作 者 陳迪 完成日期 2016年10月26日 版 本 號 v1.0 問題描述 1 設計乙個演算法,求出給定廣義表g中的原子個數。2 設計乙個演算法,求出給定廣義表g中的最大原子。輸入描述 無 程式輸出 測試資料 標頭檔案及功能函式詳見 廣義表演算法庫 mai...
第9周專案4 廣義表演算法庫及應用
問題及 檔名稱 第9周專案4 廣義表演算法庫 4.1 cpp 作 者 劉強 完成日期 2015年10月30日 版 本 號 v1.0 問題描述 1 建立廣義表演算法庫,包括 頭文glist.h,定義資料型別,宣告函式 原始檔glist.cpp,實現廣義表的基本運算,主要演算法包括 int glleng...
第9周專案4廣義表演算法庫及應用
問題及 1 main.cpp 檔名稱 專案3.cpp 完成日期 2015.11.13 問題描述 1 建立廣義表演算法庫 2 設計乙個演算法,求出給定廣義表g中的最大原子 輸入描述 include include glist.h int main glist.h ifndef glist h incl...