部落格作業04 樹

2022-05-19 23:09:24 字數 1091 閱讀 7940

遞迴遍歷左右子樹

if(左子樹高度大於右子樹高度)

返回左子樹高度+1

否則 返回右子樹高度+1

當bt=null,返回0,遞迴呼叫結束

利用函式建樹

樹的左孩子為該節點i的:2i 樹的右孩子為該節點i的:2i+1

左子樹遞迴:bt->lchild =createbtree(str,2*i);

右子樹遞迴:bt->rchild =createbtree(str,2*i+1);

遞迴出口:字元下表i超過字元長度 或 str[i]為#;

建立佇列將根節點入棧

while(隊不空)

if(右孩子不空)

定義op為字串棧,s樹結點棧

while(遍歷字串)

while(op棧頂元素不為#)

計算表示式樹

部落格作業04 樹

在本章樹的學習中,可以說是掌握得特別虛。因為二叉樹的很多操作中都應用到了遞迴,而在上學期學習遞迴的時候就沒有掌握好,很多時候樹的幾個遞迴 會讓我沉思很久才能屢清楚整個過程,然而看懂 和會寫 還是有很大差別的,本次的pta在課本上可以找到很多相關的 情況下還是完成得跌跌撞撞的,更不敢想象如果是沒有遇到...

部落格作業04 樹

對於樹的遞迴做法看著簡單,自己寫的話很難下手 樹的性質還沒有記牢 運用樹來解題還是有困難,要多加學習 當陣列不空時 判斷是否為運算子不是則 建立新的節點,將此時的字元賦給節點,並將節點入棧 是則判斷該字元與棧頂字元的優先順序 大於則將其入棧 等於將棧頂元素出棧 小於則將棧頂元素賦予根節點,並將棧的接...

部落格作業04 樹

void initexptree btree t,string str 建表示式的二叉樹 while op棧內還有運算子 t s棧頂元素 double evaluateextree btree t 計算表示式樹 編譯錯誤 答案錯誤 部分正確 btnode createbtree char pre,c...