hozzáférést kell biztosítani az osztály objektum Function Pointer - Binary keresési fa osztály létrehozása Kapcsolatban

szavazat
1

Létrehozása bejárási a bináris keresés Tree with rekurzió.

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

Itt látható a funkciót. Most ez nyilvánvalóan rossz. Ezt a funkciót nevezik, mint ez:

first.inOrder(print_vals);

első a tárgy, és a nyomtatási Vals egyszerűen egy függvény, amely kiírja mi az adatokat az objektumot. Három érték minden objektum adatok, balra és jobbra. Hogyan fér hozzá, valójában ezek a tételek a funkciója?

A kérdést 15/10/2008 22:09
a forrás felhasználó
Más nyelveken...                            


1 válasz

szavazat
3

Úgy tűnik, hogy a hívás, hogy inOrderPtr(this->data)halad csak a datatagja csomópontja a print_valsfunkciót. Ha szeretne hozzáférni a leftés rightelemek, használja inOrderPtr(*this). Meg kell változtatni a különböző nyilatkozatok ahhoz, hogy ez a jegyzék összeállítására, mint például a nyilatkozatok inOrderPtrés print_vals. Nem látta a többi a kódot azt nehéz megmondani, mit kell változtatni, hogy.

A másik megjegyzés, úgy tűnik számomra, hogy érdemes írni a rekurzív hívások több, mint ez:

this->left->inOrder(inOrderPtr);

Én így feltételeznek a kivitelezés, mégis.

Válaszolt 15/10/2008 22:15
a forrás felhasználó

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