Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Delphi / Kylix / Turbo Pascal » Neue Pascal Programme

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
06.11.2005, 15:35 Uhr
Incubus



Gegeben sei ein Binärbaum mit den üblichen Typdefinitionen:


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

6

3 8

1 4

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

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

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

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


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

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}

Dieser Post wurde am 06.11.2005 um 15:43 Uhr von Incubus editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
06.11.2005, 17:48 Uhr
Bruder Leif
dances with systems
(Operator)


Klingt nach Hausaufgaben. Warum probierst Du's nicht einfach aus?
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
06.11.2005, 17:56 Uhr
Incubus



Hallo Bruder Leif,

ich hänge ein wenig dem Stoff hinterher. Spacelord war so freundlich und hat mir geholfen.
Nichts für ungut, aber wenn ich es könnte hätte ich nicht gepostet ;-) und ich muss etwas einsenden sonst bin ich im und am A...

Gruß

Incubus
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
06.11.2005, 22:21 Uhr
Spacelord
Hoffnungsloser Fall


Hey Jungs gebt euch mal nen Ruck.
Ich weiß aus eigener Erfahrung wie schnell man sich gerade im ersten Semester in Art und (vor allem) Umfang der Aufgaben verschätzt.
Das Problem bei dem Kurs den Incubus belegt hat ist dass eine Mindestpunktzahl,bei den Einsendeaufgaben,Voraussetzung zur Klausurzulassung ist.
Zwischen Kursbearbeitungsende und Klausur liegen nochmal 1,5 Monate.Da hätte er noch Zeit den Stoff den er hinterherhängt aufzuarbeiten,aber wenn ihm die nötigen Punkte fehlen, um zur Klausur zugelassen zu werden....
Ich werd bei Zeiten mal danach schauen,darf aber auch meine eigenen Kurse nicht aus den Augen verlieren.
Zum Umfang der Aufgaben:
Zur Zeit hab ich unter anderem auch nen 2/1 SWS Kurs belegt.Bei den letzten Aufgaben habe ich nur 3 von 5 Aufgaben bearbeitet und es waren trotzdem 25KByte geschriebenes Wort(2Wochen Bearbeitungszeit inklusive Script/weiterführende Literatur lesen).
Wenn man davon mehrere belegt hat wird es schonmal eng,zumal man ja noch voll arbeiten geht.
Sein Anliegen hat nichts mit Faulheit zu tun!

MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
06.11.2005, 23:37 Uhr
Spacelord
Hoffnungsloser Fall


Ich würde sagen c und e sind richtig.

A gibt sofort den wert des Knotens aus anstatt erst bis zum "linkesten" Blatt zu laufen.
B verkackt wenn die Wurzel des Baumes Null ist.
D gibt den Wert des Knotens erst aus nachdem auch der rechte Teilbaum durchlaufen wurde.

Die Tests von E,wo die Teilbäume gegen null getestet werden,sind eigentlich überflüssig weil
der nächste Rekursive Aufruf mit einem Nullzeiger ohnehin sofort unverrichteter Dinge zurückkkehren würde.Hat aber trotzdem die gewünschte Funktionalität.

MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
07.11.2005, 07:10 Uhr
Incubus



Ich danke Euch, vor allem Spacelord für seine Unterstützung.
Es ist immer wieder schön, wenn man Gleichgesinnte trifft .

Gruß

Incubus
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Delphi / Kylix / Turbo Pascal ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: