moeten toegang hebben tot klasse Object via Function Pointer - Binary Search Tree Class Creation Related

stemmen
1

Het creëren van Traversals voor Binary Search Boom met Recursion.

void inOrder(void (*inOrderPtr)(T&)) 
{ 
    if(this->left != NULL) 
        inOrder((*inOrderPtr)(this->left)); 
    inOrderPtr(this->data); 
    if(this->right != NULL) 
        inOrder((*inOrderPtr)(this->right)); 
} 

Hier is de functie. Nu is dit duidelijk verkeerd. Deze functie wordt als volgt uit:

first.inOrder(print_vals);

eerste is het object en afdrukken vals is gewoon een functie die wordt afgedrukt wat is de gegevens in het object. Er zijn drie waarden voor elk object, gegevens, links en rechts. Hoe kan ik eigenlijk toegang tot die items met de functie?

De vraag is gesteld op 15/10/2008 om 22:09
bron van user
In andere talen...                            


1 antwoorden

stemmen
3

Het lijkt erop dat de oproep om inOrderPtr(this->data)is het passeren van alleen het datalid van de boom knooppunt naar de print_valsfunctie. Als u wilt toegang tot de leften right-elementen, te gebruiken inOrderPtr(*this). Je moet verschillende verklaringen Om dit te compileren, zoals de aangiften voor het veranderen inOrderPtren print_vals. Zonder het zien van de rest van je code is het moeilijk om te zeggen wat je nodig hebt om ze te veranderen aan.

Op een andere nota, het lijkt me dat je zou willen om de recursieve oproepen meer als dit schrijven:

this->left->inOrder(inOrderPtr);

Ik ben het maken van veronderstellingen over uw implementatie, dat wel.

antwoordde op 15/10/2008 om 22:15
bron van user

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more