Error Reading Character of String Binary Search Tree



  • Hallo, ich versuche in BST ein Element mit Inhalt "xyz" zu löschen
    Habe in eine schleife random Inhalt erstellt und in der funktion gepackt
    Ein Element im BST hat int id und string inhalt
    Für die Suche nach Element "xyz" benutze ich die Breitensuche Methode
    Jedoch habe ich immer wieder diese Fehlermeldung
    "Error Reading Character of String", welche nur bei große Anzahl etwa 50 - 100 von Knoten
    passiert.
    Die Fehlermeldung kommt von der getInhalt() Funktion. Kann ich echt nicht nachvollziehen.

    Ich habe ein array mit 13 elemente erstellt und getestet, da läuft es ohne Fehlermeldung und die Knoten wurden sowohl nach als auch vor dem Löschen richtig verbunden. (Zeiger)

    Hier ist die Funktion um das Element zu suchen, was ich löschen sollte

    BElement* BST::searchString(std::string inhalt) {
    	BElement* v = NULL;
    	if (this->wurzel == NULL) {
    		return NULL;
    	}
    	std::queue<BElement*> Q;
    	if (this->wurzel) {
    		Q.push(this->wurzel);
    	}
    	while (!Q.empty()) {
    		v = Q.front();
    		Q.pop();
    		if (v != NULL && v->getInhalt() == inhalt) { // Hier gibt er mir die Fehlermeldung aus
    //Unhandled exception at 0x747F08B2
    //getInhalt() ist ganz normal return this->inhalt;
    
    			return v;
    		}
    		else {
    			if (v->getLeftChild() != NULL) {
    				Q.push(v->getLeftChild());
    			}
    			if (v->getRightChild() != NULL) {
    				Q.push(v->getRightChild());
    			}
    		}
    	}
    	return NULL;
    }
    
    std::string BElement::getInhalt()
    {
    	return this->inhalt;
    }
    

    Würd mich freun wenn jm eine Idee hat
    MfG



  • Zeige mal den Code wie du den Baum aufbaust.



  • Benutze einen Debugger.

    Ein Array ist eine gute Fehlerquelle.


Log in to reply