तार का एक नक्शा लागू

वोट
0

मैं एक वर्ग है कि द्विआधारी खोज वृक्ष का उपयोग कर तार का एक नक्शा की तरह बर्ताव को लागू करने की है। इस वर्ग मैं लागू किया है:

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();
    }
};

ईमानदारी से कहूं तो मैं फ़ंक्शन को लागू करने को पता नहीं है getNextPair()
किसी ने मुझे मदद कर सकता है अगर मैं यह सराहनीय होगा।

06/03/2011 को 22:13
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


2 जवाब

वोट
1

आपका इंटरफ़ेस एक आंतरिक इटरेटर है। आप getFirstPair में जहां यात्रा में हैं करने के लिए सूचक किसी तरह रखने के लिए, और सेट की जरूरत ()।

एक बार जब आप इस जोड़ने के लिए, getNextPair () बस अगले एक करने के लिए चला जाता है। यह यह करने के लिए कुछ हद तक मुश्किल है, लेकिन वह अपने काम है, तो मैं इसे आप के लिए छोड़ दें।

वास्तविक std::mapहै कि यात्रा की स्थिति डेटा संरचना से अलग रखता है - एक बाहरी iterator उपयोग करता है। प्रमुख लाभ एक से अधिक एक साथ यात्रा करने में सक्षम किया जा रहा है।

06/03/2011 को 22:22
का स्रोत उपयोगकर्ता

वोट
1

बस getNextPair के लिए एल्गोरिथ्म फेंकने के बिना, आप जो "वर्तमान" जोड़ी को इंगित करेगा आंतरिक इटरेटर किसी तरह रखने के लिए की आवश्यकता होगी। एक बार जब आप मिल गया है कि, ताकि अगले जोड़ी के लिए एल्गोरिथ्म आंकड़ा अपने आप को कुछ नोड्स के साथ एक पेड़ आकर्षित और देखते हैं कि कैसे एक पेड़ में किसी भी नोड दिया पेड़ में अगले नोड पा सकते हैं करने के लिए।

06/03/2011 को 22:46
का स्रोत उपयोगकर्ता

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