1

嗨,我已經在mips中實現了一個bst,我需要打印這棵樹。 每個節點有以下四種信息如何打印二進制搜索樹?

  • 其價值

  • 父母的地址

  • 左孩子的地址

  • 右子地址

我應該PRI按以下格式樹。 (x表示沒有兒童)

12 

8-16 

x-9 13-17 

x-x x-11 x-x x-x 

能否請您提出一個方法來實現這種印刷方法?

+0

嘗試使用[graphviz的](http://www.graphviz.org/)。這個作業也是? :-) – 2012-04-20 14:59:51

+1

是的,這是在「MIPS asesmbly」做功課的。我不是要求你爲我寫的代碼,我只問一個辦法做到這一點。 – 2012-04-20 15:01:28

+0

@JamesAndres使用自己的格式幫助的高級程序如何,因爲他正在使用程序集? – byrondrossos 2012-04-20 15:02:28

回答

1

的排序,其中要打印的樹是一種廣度優先(級別由級)穿越。一種選擇如下:維護一個工作清單,最初用樹的根部播種。然後,從工作列表中反覆出列,打印當前元素(如果沒有任何元素,則輸出x),然後將兩個子元素添加到工作列表中。您需要一些方法來跟蹤您完成遍歷樹的時間,可能是先計算節點數,然後在打印完許多節點後停止。

這就是說,因爲你是在MIPS這樣做,一個簡單的選擇是樹線性化到一個數組,然後打印陣列。如果您在類似於你如何在一個隱含的二元堆人數節點的方式編號的節點,您可以遞歸/迭代遍歷樹,充滿樹節點數組中,然後走過去陣列式打印所有的東西。

希望這會有所幫助!

1

,因爲你需要你的二叉樹的要打印的級別水平,打印信息的最obivous方式是遍歷使用廣度優先搜索方法的樹。 其餘的很簡單,不應該是一個問題。 :)