drpingoo
Erfahrenes Mitglied
Hallo zusammen,
ich hätte da ne Frage. Und zwar würde ich gern ein Element einfügen und zwar die Wurzel, aber der Compiler stürzt da immer ab. Er gibt keine Fehler und Warnungen aus, aber wenn ich das Programm starte, wie gesagt, versagt er. Kann mir jemand sagen, wieso, bzw wo da mein Denkfehler liegt? - Danke!
lg
ich hätte da ne Frage. Und zwar würde ich gern ein Element einfügen und zwar die Wurzel, aber der Compiler stürzt da immer ab. Er gibt keine Fehler und Warnungen aus, aber wenn ich das Programm starte, wie gesagt, versagt er. Kann mir jemand sagen, wieso, bzw wo da mein Denkfehler liegt? - Danke!
lg
Code:
#include <iostream>
#include <string>
using namespace std;
int *front=NULL;
struct Baum{
int element;
//int *p;
Baum *links;
Baum *rechts;
};
void frage(){
string str1 = "eingefuegt";
string str2 = "geloescht";
string str3 = "gesucht";
string eingabe;
cout << "Soll ein Element eingefügt, gelöscht oder gesucht werden? " << endl;
cin >> eingabe;
if(eingabe==str3){
cout << endl;
cout << "ok, es wird gesucht" << endl;
}
else if(eingabe==str2){
cout << endl;
cout << "das Element wird gelöscht" << endl;
}
else if(eingabe==str3){
cout << endl;
cout << "das Element wird eingefügt" << endl;
}
else{
cout << "sry, eingabe wurde nicht erkannt!" << endl;
frage();
}
}
bool suchen(Baum *knoten){
if(knoten->element==*front){
return true;}
else if(knoten->element<*front){
if(knoten->links!=NULL){
suchen(knoten->links);
}
else{
return false;}
}
else{
if(knoten->rechts!=NULL){
suchen(knoten->rechts);
}
else{
return false;}
}
return true;
}
int einfügen(Baum *knoten){
if(front==NULL){
Baum *b = new Baum;
b->element=knoten->element;
//b->p=NULL;
//b->rechts=NULL;
b->rechts=knoten->rechts;
//b->links=NULL;
b->links=knoten->links;
*front=b->element;
return b->element;}
else{
if(!suchen(knoten)){
Baum *b = new Baum;
b=knoten;
}
}
return 0;}
int main(){
//frage();
Baum *bau = new Baum;
bau->element=8;
bau->links=NULL;
bau->rechts=NULL;
einfügen(bau);
return 0;}