Végre egy térképet a húrok

szavazat
0

Meg kell végre egy osztály, amely úgy viselkedik, mint egy térkép húrok bináris keresési fa. Ez az I. osztályú végrehajtani:

template<class T>
class StringMapper {
private:
    // Pair
    struct Pair {
        std::string el1;
        T el2;
    };

    // Nod
    struct Node {
        Pair* data;
        Node* left;
        Node* right;
        Node()
        {
            data = new Pair;
        }
        ~Node()
        {
            delete data;
        }
        int nod_size()
        {
             // code here
        }
    };
    Node* root;
public:
    StringMapper()
    {
        root = 0;
    }
    ~StringMapper() {}
    void insert(std::string from, const T& to)
    {
        // code here
    }

    bool find(std::string from,const T& to) const
    {
        return find(root, to);
    }

    bool find(Node* node, const T& value) const
    {
        // code here
    }

    bool getFirstPair(std::string& from, T& to)
    {
        if(root != 0)
        {
            from = root->data->el1;
            to = root->data->el2;
            return true;
        }
        return false;
    }
    bool getNextPair(std::string& from, T& to)
    {
        if(root != 0)
        {

        }
        return false;
    }

    int size() const
    {
        return root->nod_size();
    }
};

Hogy őszinte legyek, nem tudom, hogyan hajtsák végre a funkciót getNextPair().
Ha valaki tudna segíteni hálás lennék.

A kérdést 06/03/2011 22:13
a forrás felhasználó
Más nyelveken...                            


2 válasz

szavazat
1

Az interfész egy belső bejáró. Be kell tartani valamilyen mutató hol van a bejárás, és állítsa be getFirstPair ().

Ha hozzá ezt, getNextPair () csak megy, hogy a következő alkalommal. Ez kissé nehéz megtenni, de ez a feladat, úgyhogy hagyjuk meg.

A tényleges std::maphasználó külső bejáró -, hogy megtartja az állam a iteráció elkülönül az adatok szerkezetét. A nagy előnye, hogy képes több egyidejű iteráció.

Válaszolt 06/03/2011 22:22
a forrás felhasználó

szavazat
1

Anélkül csak dobott algoritmus getNextPair, akkor meg kell tartani valamilyen belső iterator amelyek rámutatnak, hogy a „jelenlegi” párt. Ha megvan, hogy annak érdekében, hogy kitaláljuk az algoritmus a következő pár felhívni magát egy fa néhány csomópont, és hogyan lehet találni a következő a fában megadott bármelyik csomópont a fán.

Válaszolt 06/03/2011 22:46
a forrás felhasználó

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