資料結構實驗6 樹

2021-07-25 04:30:30 字數 1558 閱讀 1431

/*

編寫演算法函式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...