comment dessiner des arbres binaires dont la liste de précommande est abcdefgh et dont la liste de post-commande est dcbgfhea.also, liste les nœuds d'arbres binaires dans l'ordre inorder et de niveau?algorithme de programmation de structure de données
Répondre
Arbre:
a
/\
b e
//\
c f h
//
d g
afinde:
dcbagfeh
ordre de niveau(c.-à-BFS):
abecfhdg
Voici un programme Python simple qui génère possible afinde listes basées sur les listes de pré-commande et de post-commande.
from itertools import product
def inorders(pre, pos):
if not pre: return [""]
ret = []
if pre[0] == pos[-1]:
for left_size in range(len(pre)):
left = inorders(pre[1:left_size+1], pos[:left_size])
right = inorders(pre[left_size+1:], pos[left_size:-1])
for l, r in product(left, right):
ret.append(l + pre[0] + r)
return ret
Et voici la sortie pour votre cas:
>>> inorders("abcdefgh", "dcbgfhea")
['bcdafgeh', 'bcdagfeh', 'bdcafgeh', 'bdcagfeh', 'cdbafgeh', 'cdbagfeh', 'dcbafgeh', 'dcbagfeh']
puisque vous n'utilisez jamais 'n', vous pouvez simplement remplacer les deux premières lignes de' inorder 'avec' si pas pre: return [''] ' – aaronasterling
@AaronMcSmooth - J'ai utilisé' n' deux fois, mais j'ai fait le changement de toute façon. Merci. –
- 1. Révisions: algorithme et structure de données
- 2. Algorithme et ressources d'apprentissage de la structure de données pour la programmation dynamique
- 3. Structure de programmation de jeu
- 4. algorithme et implémentations structure de données pour les programmeurs C
- 5. Algorithme de correspondance de données
- 6. Algorithme de programmation de jeu de tir à l'arc
- 7. Structure de données d'arbre
- 8. Structure de données XML
- 9. Structure de données
- 10. Structure de données arborescente
- 11. structure de données multidimensionnelle
- 12. Structure de données matricielles
- 13. Problème de structure de données
- 14. C structure de données sur le disque
- 15. Données de programmation de l'iPhone
- 16. Algorithme simple de masquage de données
- 17. Rails fond processus/structure de données
- 18. Structure de données pour un moteur de recherche?
- 19. Structure de données utilisée pour la structure de répertoire?
- 20. Structure de marquage de base de données
- 21. diagramme de structure de base de données
- 22. Besoin d'aide à la programmation d'assemblage (TASM) - Algorithme de Booth
- 23. Structure de données enum C++
- 24. Quelle structure de données utiliser?
- 25. ASP.NET GridView SqlDatasource Programmation de tri de données par programmation
- 26. Structure de données pour les relations
- 27. Structure de données d'arbre et données
- 28. structure de données pour des données tabulaires
- 29. structure de programmation série Comms en C#/net/
- 30. Meilleure structure de données pour stocker un million de valeurs?
Précommande et postorder sont façons de * * traverse un arbre. Vous avez toujours le même arbre sous-jacent, vous le traversez différemment. Voir: [Tree traversal sur wikipedia] (http://en.wikipedia.org/wiki/Tree_traversal) – NullUserException
ressemble à des devoirs –