freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

表達式求值廣義表的運算課程設計報告-文庫吧

2025-01-06 18:48 本頁面


【正文】 構造子表,否則構造原子結點;遇到逗號時遞歸構造后續(xù)廣義表,直到字符串數(shù)組結束,以\0作為結束標志。實現(xiàn)過程如下:GList *CreateGL(char *amp。s) { 讀入廣義表的一個字符給ch; if (ch!=空格39。) {if (ch==39。(39。) { 遞歸構造子表;}else if (ch==39。)39。) 遇到39。)39。字符,子表為空 else { 構造原子結點;}} else 串結束,子表為空讀入廣義表的一個字符給ch; if (ch==39。,39。) 遞歸構造后續(xù)子表; else 處理表的最后一個元素 返回廣義表指針}遍歷廣義表DispGL(GList *g)。輸出廣義表采用的算法思想是:若遇到tag=1的結點,這是一個子表的開始,先打印輸出一個左括號”(”。如果該子表為空,則輸出一個空格符;否則遞歸調(diào)用輸出該子表。子表打印輸出完后,再打印一個右括號”)”。若遇到tag=0的結點,則直接輸出其數(shù)據(jù)域的值。若還有后續(xù)元素,則遞歸調(diào)用打印后續(xù)每個元素,直到遇到tp=NULL。其實現(xiàn)過程如下:void DispGL(GList *g) { if (g!=NULL) { if (gtag==1) { 輸出左括號39。(39。; if (g==NULL) 輸出一個空格; else 遞歸調(diào)用子表; } else 輸出數(shù)據(jù)域; if (gtag==1) 打印有括號“)”; if (gtp!=NULL) 輸出逗號“,”,遞歸調(diào)用輸出下一個結點。 }}廣義表的查找:FindGListX()在給定的廣義表種查找數(shù)據(jù)域為x的結點,采用的算法思想是:若遇到tag=0的原子結點,如果是要查找的結點,則查找成功1;否則,若還有后續(xù)元素,則遞歸調(diào)用本過程在孩子表中查找,若還有后續(xù)元素,則遞歸調(diào)用本過程查找后續(xù)每個元素,直到遇到hp域為NULL的元素。設置flag標志查找結果;flag=1;表示查找成功,否則查找失敗。本函數(shù)實現(xiàn)過程如下:FindGListX(GList *g,char x,int amp。mark){if(g!=NULL){if (gtag == 0 amp。amp。 g ==x) { 查找成功mark = 1。 }else if(gtag == 1) 遞歸調(diào)用查找后續(xù)元素; 遞歸查找調(diào)用后續(xù)元素; }}求廣義表的表頭:head(Glist *g)GList *head(GList *g) { GList *p。 if (gtag ==1amp。amp。g==NULL) { 空表不能求表頭;}else { 返回表頭結點 }}求廣義表的表尾:tail(GList *g)一個廣義表的表尾指的是除去該廣義表的第一個元素剩下的部分。求表尾實現(xiàn)過程如下:GList *tail(GList *g){ if (g==NULL) { 空表不能求表尾; } else if (gtag==0) { 原子不能求表尾; }將廣義表除去第一個元素,其余的元素復制的廣義表q中,既為該廣義表的表尾。 return q。}(GList *g)。廣義表的深度的遞歸定義是它等于所有子表中表的最大深度加1,若一個表為空或僅由單個元素所組成,則深度為1。求廣義表深度的遞歸函數(shù)GLDepth()如 輸出結果1 若h為空表max{GLDepth(sh)|sh為h的子表}+1 其他情況實現(xiàn)過程如下:int GLDepth(GList *g) { if (gtag==0) 為原子時返回; g=g。 if (g==NULL) 為空表時返回1; while (g!=NULL) { if (gtag==1) { 遞歸調(diào)用求出子表的深度; if (depmax) max為同一層所求過的子表中深度的最大值;} 使g指向下一個元素; } 返回表的深度(max+1) 。 }求廣義表的逆表NIGList(GList *g,SeqStack *s)求廣義表的逆表的算法思想是:利用廣義表的遍歷將廣義表的元素存入一個堆棧中,然后在將棧中所有的元素出棧打印,函數(shù)的實現(xiàn)如下:將廣義表中的元素存入堆棧中:void NIGList(GList *g,SeqStack *s) { if(g!=NULL) { if (gtag==1) { 將廣義表中的“(”以“)”存入棧中; else 遞歸調(diào)用,將子表中的元素存入棧中; } else 將廣義表中的元素存入棧中; if (gtag==1) 將廣義表中的)以(存入棧中; if (gtp!=NULL) 將廣義表中的,存入棧中; 遞歸將后續(xù)表的內(nèi)容存入棧中。 }}將棧中所有元素輸出:void Pop(SeqStack *s)
點擊復制文檔內(nèi)容
教學教案相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1