/*
檔名稱:專案.cpp
作 者:紀冬雪
完成日期:2023年11月10日
版 本 號: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函式,測試上面實現的演算法
輸入描述: 若干測試資料。
程式輸出: 廣義表的深度。
*/
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);
#include int main()
#include #include //glnode是廣義表的重新命名,val是聯合體。
int gllength(glnode *g) //求廣義表g的長度
return n;
}int gldepth(glnode *g)
g1=g->val.sublist;
if(g1==null)
while(g1!=null)
}g1=g1->link;
}return (max+1);
}//求廣義表g的深度
glnode *creategl(char *&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}
//返回由括號表示法表示s的廣義表鏈式儲存結構
void dispgl(glnode *g)
else
else
dispgl(g->val.sublist);
printf(")");
} if(g->link!=null)
}}//輸出廣義表g
執行結果:
總結:應用了 廣義表的長度,深度、及格式化輸出。需要好好琢磨才能理解。
第九周 建立廣義表演算法庫
作 者 孫子策 完成日期 2016.10.27 問題描述 建立廣義表演算法庫,包括 頭文glist.h,定義資料型別,宣告函式 原始檔glist.cpp,實現廣義表的基本運算,主要演算法包括 int gllength glnode g 求廣義表g的長度 int gldepth glnode g 求廣...
第九周專案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的...