#include #include #include #include #include using namespace std;
struct btree
char data;
btree *left, *right;
};void preorder(btree* root)else }}
void midorder(btree* root)else }}
void postorder(btree* root)else if(sflag.top()==false)else }}
void levelorder(btree* root)
}void maxdis(btree* root, int& h, int& dis, list& listh, list& listd)
} }else
}void btreemirror(btree* root)
}void btreecopy(const btree* src, btree*& des)
else
}bool btreecomp(const btree* src, btree* des)
}typedef void(*func)(btree* root);
int main()
; int funcsize = sizeof(func)/sizeof(func);
const char* funcname = ;
btree a('a'),b('b'),c('c'),d('d'),e('e'),f('f'),g('g');
a.left = &b, a.right = &c;
b.left = &d, b.right = &e;
e.left = &f, e.right = &g;
btree* root = &a;
for(int i=0;ilhigh, ldistance;
maxdis(root,high, distance, lhigh, ldistance);
printf("max distance:\t%d\npath:\t", distance);
for(list::iterator it=lhigh.begin();it!=lhigh.end();it++)
printf("\n");
printf("height:\t:%d\npath:\t", high);
for(list::iterator it=ldistance.begin();it!=ldistance.end();it++)
printf("\n");
return 0;
}
解題筆記(33) 按層次遍歷二元樹
問題描述 輸入一顆二元樹,從上往下按層列印樹的每個結點,同一層中按照從左往右的順序列印。例如輸入 8 6 10 5 7 9 11 輸出8 6 10 5 7 9 11。定義二元樹 其實是二元搜尋樹,但並不遍歷演算法 的結點為 view plain print?struct bstreenode 思路 ...
二元樹的深度
題目 輸入一棵二元樹的根結點,求該樹的深度。從根結點到葉結點依次經過的結點 含根 葉結點 形成樹的一條路徑,最長路徑的長度為樹的深度。例如 輸入二元樹 10 614 412 16 輸出該樹的深度3。二元樹的結點定義如下 struct sbinarytreenode a node of the bin...
二元空間分割樹 BSP (二)
來自於 在渲染3d遊戲的室內場景時,bsp樹是往往是乙個比較複雜但非常有效的方法。它可以用來進行高效的深度檢測。深度檢測通常 用來決定哪個物體離視點更遠,然後再根據從遠到近進行多邊形繪製,這樣出來的結果才是正確的。首先給出乙個圖,我們可以看出在removal b區域,白色的多邊形覆蓋了黃色多邊形,而...