/ / Finden Sie anhand einer Baum-Traversierungsreihenfolge heraus, ob es sich um eine Vorbestellung oder eine Nachbestellung handelt - Baum, Baum-Traversierung

Bei einer Baumdurchsuchungsreihenfolge herausfinden, ob es sich um eine Vororder in oder um eine Vororder handelt - Baum, Baumdurchlauf

Angenommen, jemand gibt mir eine Baumüberquerungsreihenfolge für die Knoten von A bis G - F, B, A, D, C, E, G, I, H, die entweder vorbestellt, inorder oder nachbestellt sein kann

  1. Wie kann ich feststellen, ob es effizient vorbestellt, bestellt oder nachbestellt wird?
  2. Wie rekonstruiere ich den Baum effizient, ohne den Baum für jeden der drei Durchquertypen wie den unten gezeigten erstellen zu müssen?

Musterbaum

Antworten:

0 für die Antwort № 1

Angenommen, die Ihnen gegebene Baumdurchquerung ist genau ...

Wenn Sie keine Informationen über "welche Art von Baum" haben, können Sie auf keinen Fall sagen, um welche Art von Durchquerung es sich handelt.

Wenn Sie Informationen über den Baum und die Organisation der Werte erhalten, können Sie dies möglicherweise tun.

wenn es sich um einen binären Baum handelt und wenn:

  • Die Liste ist perfekt geordnet, definitiv in der richtigen Reihenfolge

  • Die Liste ist nicht geordnet und ein Wert, der nicht mindestens in der Liste enthalten ist, ist der erste Wert. es ist definitiv in vorbestellung (dieser erste wert ist die wurzel)

  • Die Liste ist nicht sortiert und der erste Wert ist minimal. Sie ist definitiv nachbestellt.

Angesichts der Durchquerung eines binären Baumes,

Wenn in der richtigen Reihenfolge: Es gibt mehr als einen Baum, der diese in der richtigen Reihenfolge durchläuft.

falls vorbestellt: genau ein Baum, der diesem entspricht (der erste in einer Liste ist immer der Stamm dieses Teilbaums, die Werte kleiner als der Stamm sind im linken Teilbaum und größer als rechts)

bei Nachbestellung: genau ein Teilbaum (ähnlich wie oben bei Vorbestellung)