DMUG-Archiv 2001

Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

Mathematica Aufgabe!

Hallo ich komme bei folgender Aufgabe nicht weiter:

Ein binärer Baum ist ein Baum dessen Knoten einen Wert val, einen linken
Unterbaum left und einen rechten Unterbaum right beinhalten. Left und
right können leer sein. Binäre Bäume sind außerdem folgendermaßen
sortiert: Sei n ein bestimmter Knoten eines binären Baums. Die Werte der
Knoten des linken Unterbaumes von n sind kleiner als der Wert von n; die
Werte der Knoten des rechten Unterbaumes sind größer als der Wert von n.
In Mathematica kann ein Knoten eines binären Baumes folgendermaßen
codiert werden:
node[val_, left_, right_].

A.) Codieren Sie den folgenden binären Baum in Mathematica-Notoation_

(1)-(3)-(10)-(12)-(8)
 |   |
(2) (4)

B.) Zeichnen Sie folgenden binären Baum:
node[10,
  node[3,
        node[1, Null,Null]
        node[4, Null, node[6, node[5, Null, Null], node[8, Null, node[9,
Null, Null]]]]
        ],
  node[12,
        node[11, Null, Null],
        node[15, node[13, Null, node[14, Null, Null]], node[16, Null,
Null]]
        ]
  ]

C.) Schreiben Sie eine Funktion isInTreeQ[node_, v_], welche überprüft,
ob ein gegebener Wert v im binären Baum mit Wurzel node enthalten ist.
Verwenden Sie dazu folgende Mathematica-Funktion:
Value[node[val_, _, _]] := val
leftTree[node[_, left_, _]] := left
rightTree[node[_, _, right_]] := right

Wie kann ich die Aufgabe lösen?

Danke
Rajan 


Antworten:
Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

DMUG DMUG-Archiv, http://www.mathematica.ch/archiv.html