000
29.11.2009, 14:21 Uhr
~BraffA
Gast
|
hallo,
möchte mir zu folgender aufgabe gern noch eine 2te meinung einholen.
Mein lösungsvorschlag: a: falsch, da der knoten-wert sofort ausgegeben wird b: flasch, wenn die Wurzel des Baums Null ist c: richtig d: es muss zuerst der rechte Teilbaum durchlaufen, bevor der Knotenwert ausgegeben wird e: richtig
stimmt das so? liege ich richtig?
Hier die Aufgabe:
Zitat: |
Gegeben sei ein Binärbaum mit den üblichen Typdefinitionen:
Code: |
type tRefBinBaum = ^tBinBaum; tBinBaum = record info : integer; links, rechts : tRefBinBaum end;
|
Die Prozedur SymAusgabe soll die Knoteninhalte in der symmetrischen Reihenfolge (inorder) ausgegeben. (Hinweis: der Begriff symmetrische Reihenfolge wird im Skript erklärt.)
Beispiel: Für den binären Baum
sind die Knotenwerte in der symmetrischen Reihenfolge: 1, 3, 4, 6, 8.
Welche der fünf folgenden Varianten geben die Knotenwerte für beliebige Binärbäume in der symmetrischen Reihenfolge aus?
--> A:
Code: |
procedure SymAusgabe ( inRefWurzel : tRefBinBaum); {gibt die Knotenwerte eines Binärbaums in symmetrischer Reihenfolge aus} begin if inRefWurzel <> nil then begin write (inRefWurzel^.info); if inRefWurzel^.links <> nil then SymAusgabe(inRefWurzel^.links); if inRefWurzel^.rechts <> nil then SymAusgabe(inRefWurzel^.rechts) end end; {SymAusgabe}
|
--> B:
Code: |
procedure SymAusgabe ( inRefWurzel : tRefBinBaum); {gibt die Knotenwerte eines Binärbaums in symmetrischer Reihenfolge aus} begin if inRefWurzel^.links <> nil then SymAusgabe(inRefWurzel^.links); write(inRefWurzel^.info); if inRefWurzel^.rechts <> nil then SymAusgabe(inRefWurzel^.rechts) end; {SymAusgabe}
|
--> C:
Code: |
procedure SymAusgabe ( inRefWurzel : tRefBinBaum); {gibt die Knotenwerte eines Binärbaums in symmetrischer Reihenfolge aus} begin if inRefWurzel <> nil then begin SymAusgabe(inRefWurzel^.links); write (inRefWurzel^.info); SymAusgabe(inRefWurzel^.rechts) end end; {SymAusgabe}
|
--> D:
Code: |
procedure SymAusgabe ( inRefWurzel : tRefBinBaum); {gibt die Knotenwerte eines Binärbaums in symmetrischer Reihenfolge aus} begin if inRefWurzel <> nil then begin if inRefWurzel^.links <> nil then SymAusgabe(inRefWurzel^.links); if inRefWurzel^.rechts <> nil then SymAusgabe(inRefWurzel^.rechts); write (inRefWurzel^.info) end end; {SymAusgabe}
|
--> E:
Code: |
procedure SymAusgabe ( inRefWurzel : tRefBinBaum); {gibt die Knotenwerte eines Binärbaums in symmetrischer Reihenfolge aus} begin if inRefWurzel <> nil then begin if inRefWurzel^.links <> nil then SymAusgabe(inRefWurzel^.links);
write (inRefWurzel^.info); if inRefWurzel^.rechts <> nil then SymAusgabe(inRefWurzel^.rechts) end end; {SymAusgabe}
|
|
|