第九周上機實踐 專案4(1) 建立廣義表演算法庫

2021-07-06 08:48:51 字數 1892 閱讀 3744

/*

*檔名稱: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的座標。必作題...