/*
* 煙台大學計算機與控制工程學院
* 完成日期:2023年10月28日
* * 問題描述:建立廣義表演算法庫
* 輸入描述:
* 程式輸出: */
**:1.標頭檔案:glist.h,包含定義廣義表資料結構的**、巨集定義、要實現演算法的函式的宣告;
[csharp]view plain
copy
#ifndef glist_h_included
#define glist_h_included
typedef char
elemtype;
typedef struct
lnode
val;
struct
lnode *link;
//指向下乙個元素
} glnode; //廣義表節點型別定義
intgllength(glnode *g);
//求廣義表g的長度
intgldepth(glnode *g);
//求廣義表g的深度
glnode *creategl(char
*&s);
//返回由括號表示法表示s的廣義表鏈式儲存結構
void
dispgl(glnode *g);
//輸出廣義表g
#endif // glist_h_included
2.原始檔:glist.cpp,包含實現各種演算法的函式的定義
[csharp]view plain
copy
#include
#include
#include "glist.h"
intgllength(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函式,完成相關的測試工作。 例:
[csharp]view plain
copy
#include
#include "glist.h"
intmain()
執行結果:
第九周專案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 廣義表演算法庫及應用
檔名稱 廣義表演算法庫 1 cpp 作 者 張雯婧 完成日期 2016年10月24日 版 本 號 v1.0 問題描述 1 建立廣義表演算法庫,包括 頭文glist.h,定義資料型別,宣告函式 原始檔glist.cpp,實現廣義表的基本運算,主要演算法包括 int gllength glnode g ...