/*
*檔名稱:test.cpp
*完成日期:2023年11月1日
*版本:v1.0
* *問題描述:建立廣義表演算法庫
*輸入描述:無
*程式輸出:輸出廣義表長度、深度
*/
1.標頭檔案:glist.h,包含定義廣義表資料結構的**、巨集定義、要實現演算法的函式的宣告;
#ifndef glist_h_included
#define glist_h_included
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
2.原始檔:glist.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)}}
3.在同一專案(project)中建立乙個原始檔(如main.cpp),編制main函式,完成相關的測試工作。
#include #include "glist.h"
int main()
執行結果:
知識點總結:
定義廣義表演算法庫。
學習心得:
掌握理解廣義表的定義後才能更好的運用於程式中。
第九周上機實踐專案 閱讀專案
檔名稱 main.cpp 作 者 劉濤 完成日期 2016年4月23號 版 本 號 v1.0 問題描述 動態分配記憶體 include using namespace std class a a class b b int main 執行結果 執行過程 主函式裡定義了乙個b類的物件,所以執行b的建構...
第九周 建立廣義表演算法庫
作 者 孫子策 完成日期 2016.10.27 問題描述 建立廣義表演算法庫,包括 頭文glist.h,定義資料型別,宣告函式 原始檔glist.cpp,實現廣義表的基本運算,主要演算法包括 int gllength glnode g 求廣義表g的長度 int gldepth glnode g 求廣...
第九周上機作業
1 定義乙個點類point,包含2個成員變數x y分別表示x和y座標,2個構造器point 和point int x0,y0 以及乙個movepoint int dx,int dy 方法實現點的位置移動,建立兩個point物件p1 p2,分別呼叫movepoint方法後,列印p1和p2的座標。必作題...