/
作 者:孫子策
完成日期:2016.10.27
問題描述:建立廣義表演算法庫,包括:
① 頭文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函式,測試上面實現的演算法
/
.h**:
#ifndef tup_h_included
#define tup_h_included
#define m 6
#define n 7
#define maxsize 100 //矩陣中非零元素最多個數
typedef int elemtype;
typedef struct
tupnode; //三元組定義
typedef struct
tsmatrix; //三元組順序表定義
void creatmat(tsmatrix &t,elemtype a[m][n]); //從乙個二維稀疏矩陣建立其三元組表示
bool value(tsmatrix &t,elemtype x,int i,int j); //三元組元素賦值
bool assign(tsmatrix t,elemtype &x,int i,int j); //將指定位置的元素值賦給變數
void dispmat(tsmatrix t);//輸出三元組
void trantat(tsmatrix t,tsmatrix &tb);//矩陣轉置
bool matadd(tsmatrix a,tsmatrix b,tsmatrix &c);
#endif // tup_h_included
.cpp**:
#include #include #include "a.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
知識點總結:
廣義表的基本演算法。
心得體會:
理解起來很容易,但是**不好想。
第九周 建立廣義表的演算法庫
06.date 2015年10月27日 07.版本 v1.0.1 08.作業系統 xp 09.執行環境 vc6.0 10.問題描述 建立廣義表的演算法庫。11.標頭檔案 glist.h ifndef glist h included define glist h included typedef c...
第九周 廣義表演算法庫及應用
檔名稱 專案.cpp 作 者 紀冬雪 完成日期 2015年11月10日 版 本 號 v1.0 問題描述 1 建立廣義表演算法庫,包括 頭文glist.h,定義資料型別,宣告函式 原始檔glist.cpp,實現廣義表的基本運算,主要演算法包括 int gllength glnode g 求廣義表g的長...
第九周上機實踐 專案4(1) 建立廣義表演算法庫
檔名稱 test.cpp 完成日期 2015年11月1日 版本 v1.0 問題描述 建立廣義表演算法庫 輸入描述 無 程式輸出 輸出廣義表長度 深度 1.標頭檔案 glist.h,包含定義廣義表資料結構的 巨集定義 要實現演算法的函式的宣告 ifndef glist h included defin...