2010-12-13 6 views
0

Possible en double:
Construct a Treetraversal arbre de envue et précommander

Salut, comment puis-je écrire un prorgam avec java afin de créer un arbre avec un pré-ordre donné et un afinde . Je connais la traversée d'arbres avec inorder et aussi la traversée d'arbres avec précommande, mais je ne peux pas faire la même chose pour créer des arbres à la fois en ordre et en précommande ensemble

+1

Vous devez clarifier cela un peu. Un arbre aura toujours le même précommande ou inorder. Essayez-vous d'écrire une fonction qui crée l'arbre donné soit traversal? – Raskolnikov

+1

Exemple s'il vous plaît. De préférence avec une illustration. – aioobe

+0

par exemple j'ai l'inorder = {2,4,1,7,12,11} et précommande = {1,2,4,7,11,12}, et maintenant je veux créer un arbre avec l'ordre ci-dessus et précommander – kaju

Répondre

0

l'algorithme est si facile si vous construisez votre arbre correctement!

preorder : 

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

inorder : 

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

plus d'informations ici: http://en.wikipedia.org/wiki/Tree_traversal

+0

Vous n'indiquez pas la réponse. – Dejell

1

Apprenons par exemple:

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

De Pré-commande, nous pouvons dire que,

a est la racine.

De En ordre, on peut dire que,

g d h b e i sont laissés sous-arbre et fjc sont sous-arbre droit,

maintenant racine suivante serait b (de pré-commande)

et sous-arbre gauche et à droite sont gdh et ei de dans l'ordre ...

continuer à faire cela ...

+0

Avez-vous des exemples de code? – Dejell