2010-08-11 120 views
1

構造一棵樹,因爲它的中序非常簡單。 但是,假設您應該基於它的預先構建樹(例如+ + y z + * x y z)。二叉樹,基於前序構建樹

很容易看出,+是根,以及如何從那裏繼續左子樹。 但是..你怎麼知道什麼時候你應該「切換」到正確的子樹?

回答

1

通常情況下,inorder被認爲是困難的情況。

對於預購,你只需要這樣的語法。

expr ::= operator expr expr | var 

操作者後跟正好兩個合式表達式。這可以很容易地使用遞歸來解析

如果您解析樹並獲取變量,則返回該變量。 如果你解析一棵樹並得到一個操作符,解析後面的兩棵樹爲右/左子樹。