2010-12-13 9 views
0

可能性の重複:
Construct a TreeツリーINORDERからトラバーサルおよび予約限定

こんにちは、与えられた先行順としてツリーを作成するように私は、Javaとprorgamを書くことができますどのようにINORDER 。私はinorderで木を横断して、またpreorderで木を横切ることを知っていますが、inorderとpreorderの両方からツリーを作成するために同じことをすることはできません

+1

これを少し明確にする必要があります。ツリーは常に同じプレオーダーまたはインオーダーを持ちます。トラバーサルを指定してツリーを作成する関数を記述しようとしていますか? – Raskolnikov

+1

お願いします。好ましくはイラスト付き。 – aioobe

+0

例えば、私はinorder = {2,4,1,7,12,11}とpreorder = {1,2,4,7,11,12}を持っています。そして今、私は上記のinorder preorder – kaju

答えて

0

あなたのツリーを正しく構築すればアルゴリズムはとても簡単です!

preorder : 

print(tree){ 
    printf(tree.value); 
    print(tree.left); 
    print(tree.right); 
} 

inorder : 

print(tree) { 
    print(tree.left); 
    print(tree.value); 
    print(tree.right); 
} 

詳しくはこちら:http://en.wikipedia.org/wiki/Tree_traversal

+0

あなたは答えを指摘していません.. – Dejell

1

はのは、一例で学ぼう:

PRE-ORDER:= abdgheicfj IN- ORDER:= gdhbeiafjc

我々が言うことができるプリオーダーからそれは

aです。

g d h b e iはサブツリー残され

で-ため、我々はそれを言うことができるから、とfjc

今、次のルートが

(プリオーダーから) bになり、右のサブツリーです

サブツリー左右のインオーダーからgdheiです...

はこれをやっていき...

+0

いくつかのコードサンプルがありますか? – Dejell

関連する問題