/*
編寫演算法函式void levelorder(tree t)實現樹的層次遍歷。
*/#include "tree.h"
void levelorder(tree t) /* t為指向樹根結點的指標*/}}
} int main() /*
假設樹採用指標方式的孩子表示法表示,試編寫乙個非遞迴函式void preorder1(tree root),實現樹的前序遍歷演算法。
*/#include "tree.h"
void preorder1(tree root)
root=root->child[0]; //從第乙個子結點開始遍歷
}else
//子樹為空,出棧
}}int main ()
/*
假設樹採用指標方式的孩子表示法表示,試編寫乙個非遞迴函式void postorder1(tree t),實現樹的後序遍歷演算法。
*/#include "tree.h"
int postorder1(tree root)
overstack[++top1]=root; //處理完root,將root入overstack
}while(top1!=-1) //輸出
printf("%c",overstack[top1--]->data);
}int main ()
/*
假設樹採用指標方式的孩子表示法表示,試編寫乙個函式int equal(tree t1, tree t2),
判斷兩棵給定的樹是否等價(兩棵樹等價當且僅當其根結點的值相等且其對應的子樹均相互等價)。
*/#include "tree.h"
#define true 1
#define false 0
int equal(tree t1,tree t2)
return flag;
}}int main ()
else
return
0;}
/*
假設樹採用指標方式的孩子表示法儲存結構,試編寫乙個函式tree ct(char s),
根據輸入的樹的括號表示字串s,生成樹的儲存結構。例如,若要建立教材圖6.4所示的樹,
應輸入a(b(e,f),c,d(g(i,j,k),h))。(說明,tree.h中定義的常量m表示樹的最
大度,請根據建樹的需要自行修改m的值)
*/#include "tree.h"
/*請將本函式補充完整,並進行測試*/
tree ct(char s[maxlen])
else
if(s[n]==')') //遇到右括號,父結點出棧
else
if(s[n]==',')
n++;
else
}n++;}}
return
parent;
}int main ()
資料結構實驗6
因為精度問題,請使用double存資料。要求建立棧類,採用陣列描述 計算數學表示式的值。輸入數學表示式,輸出表示式的計算結果。數學表示式由單個數字和運算子 構成,例如 2 3 4 5 6 4。假定表示式輸入格式合法。格式輸入 第一行乙個整數n 1 n 100 代表表示式的個數。接下來n行,每行乙個表...
資料結構實驗(6)
ps 僅資料結構實驗記錄 題目 某汽車輪渡口,過江渡船每次能載 10 輛車過江。過江車輛分別為客車類和貨車類,上船有如下規定 同類車先到先上船,客車先於貨車上渡船,且每上 4 輛客 車,才允許上一輛貨車 若等待客車不足 4 輛則以貨車代替 若無貨車等待則允許客 車都上船。設計乙個演算法模擬渡口管理。...
資料結構實驗6
題目 某汽車輪渡口,過江渡船每次能載 10 輛車過江。過江車輛分別為客車類和 貨車類,上船有如下規定 同類車先到先上船,客車先於貨車上渡船,且每上 4 輛客 車,才允許上一輛貨車 若等待客車不足 4 輛則以貨車代替 若無貨車等待則允許客 車都上船。設計乙個演算法模擬渡口管理。test.h inclu...