Binäre Bäume...Verständnissproblem........
-
Hallo zusammen,
bin grad am lernen für meine Prüfungen und da bei den Binären Bäumen auf ein Verständnissproblem gestoßen.
Wenn ich jetzt mehrere Zahlen eingebe:
z.B. 10, 6, 5, 8, 20, 18, 19, 15.
Dann müsste der Baum, laut code so aussehen:
10
6
5
8
20
18
19
15Aber er müsste laut Buch so aussehen:
10
6 20
5 8 18
15 19Hab ich was falsch gemacht oder sieht der Baum tatsächlich so aus und warum?
Bitte um Hilfe! Vielen dank im voraus!!!!
Ps: Kann mir jemand eine Funktion zur Ausgabe eines Binären Baum auf dem Bildschirm schicken
#include <stdio.h>
#include <stdlib.h>struct knoten
{
int wert;
struct knoten *links;
struct knoten *rechts;
};
typedef struct knoten KNOTEN;
int zahl;KNOTEN *eingeben(KNOTEN *zeiger)
{
if(zeiger==NULL)
{
zeiger = (KNOTEN*)malloc(sizeof(KNOTEN));
zeiger->wert = zahl;
zeiger->links = NULL;
zeiger->rechts = NULL;
}
else if(zeiger->wert >= zahl)
{
(zeiger->links) = eingeben(zeiger->links);
}
else if(zeiger->wert <= zahl)
{
zeiger->rechts = eingeben(zeiger->rechts);
}
return(zeiger);
}void zeige_baum(KNOTEN *zeiger)
{
if (zeiger != NULL)
{zeige_baum(zeiger->links);
printf("\n %d ->",zeiger->wert);
zeige_baum(zeiger->rechts);
}
}void main(void)
{
KNOTEN *wurzel = NULL;do
{
printf("Zahl eingeben: ");
scanf("%i", &zahl);
wurzel = eingeben(wurzel);
}while(zahl !=0);zeige_baum(wurzel);
}Danke nochmals!!!!
-
die Bäume sehen so aus, lässt sich ohne punlte nicht darstellen:
.....10
....6
...5
.....7
......9........
der andere
......................10
....................5....20
...................3...18..19
..................2
-
natuerlich laesst sich sowas gescheit darstellen
natuerlich laesst sich sowas gescheit darstellen