Einzelnen Beitrag anzeigen
Alt 01.07.2009, 11:40   #1 (permalink)
kanonenfutter
Extrem Tweaker
 
Benutzerbild von kanonenfutter
 

Registriert seit: 10.07.2006
Beiträge: 2.290

kanonenfutter ist ein Lichtblickkanonenfutter ist ein Lichtblickkanonenfutter ist ein Lichtblickkanonenfutter ist ein Lichtblickkanonenfutter ist ein Lichtblick

Standard Binärbaum in C ausgeben

Hallöchen

Ich möchte eine erstellten Binärbaum wie folgt ausgeben:

a (Wurzel)
bc
defg
...

Muss also nicht die typische Baumstruktur sein. Bisher schaff ich die Ausgabe folgendermaßen:
a b c d e f g ...

Ich würde auch
a
b c

hinbekommen, die unteren Ebenen funktionieren dann aber nicht mehr.

Also zwar schon in der richtigen Reiehnfolge, allerdings kann ich die Zeilenumbrüche nicht so setzen, dass eben genau dann umgebrochen wird, wenn eine neue Ebene erreicht wird.

Könnt ihr mir da mit einem kleinen Pseudocode helfen?

Die Augabe sieht atm so aus:

Spoiler:
void ZeigeBaum(TKnoten * p_pWurzel)
{
printf("Erzeugter Baum \n");
printf("--------------------------------\n\n");

if(p_pWurzel == NULL)
{
printf("Der Baum ist leer!");
}
else
{
printf("%d \n", p_pWurzel->iInhalt);

ZeigeBaum_Innen(p_pWurzel->pKindLinks, 1);
ZeigeBaum_Innen(p_pWurzel->pKindRechts, 1);
printf("\n");

}
}

///////////////////////////////////////////////////////////////////////////////////////

void ZeigeBaum_Innen(TKnoten * p_pWurzel, int p_iEbene)
{
if(p_pWurzel == NULL)
{
}
else
{
printf("%d ", p_pWurzel->iInhalt);
}


Damit bekomm ich oben angesprochene Struktur von
a
b c

hin, mehr leider nicht

Vllt. habt ihr ja eine Idee?

mfg

----------

In der Funktion ZeigeBaum_Innen muss ich ja wahrscheinlich wieder irgendwie rekursiv aufrufen, hab aber leider kA was wann und wie... ;(
kanonenfutter ist offline   Mit Zitat antworten