二叉樹是數據結構最重要的部分之一,數據結構據說是學習編程的基礎課程,雖然好像和平時工作關系不大,但面試時面試官很喜歡出點數據結構算法來刁難你。
一直以來,寫算法好像只是C/C++的事,一串串數字輸出在冰冷的手術台,sorry,是控制台上。但中間的過程,只能畫在草紙上,或者像下盲棋一樣用用腦汁算。其實我們多數人並不需要到高手的那個境界,只要會走法,能走兩步就夠了,所以有一個棋盤的話會對我們練習幫助很大。
下面是我在WPF窗口上畫的一個二叉樹:
每個節點都是一個Canvas,里面又包含一個Ellipse和TextBlock。
節點通過Margin屬性來定位。在遞歸顯示時,先計算子節點的Margin,然后再通過父節點和子節點的Margin算出連線的起點和終點坐標。需要注意的是,從上到下,樹枝叉的角度要依次遞減,不然可能會出現節點重疊或樹枝相交。
雖然剛開始接觸WPF,不過看起來不算太難,呵呵。
下載地址請點擊。