मैं एक शब्द भी एक महत्वपूर्ण मूल्य रिकर्सिवली उपयोग करने के लिए खोज करने के लिए कोशिश कर रहा हूँ। में पुनः प्राप्त समारोह: समस्या सूचकांक 0, 1,3,7 से चला जाता है, से 15 .... यह 0,1,3,7,8 जाना और इसके आगे मैं उम्मीद के रूप में काम डालने मान लीजिए। मैं inorder, अग्रिम आदेश, सभी काम कर रहे है। किसी कृपया मुझे इस समस्या को यह पता लगाने में मदद कर सकते हैं? मैं इस पर 4 दिनों के लिए अब काम कर रहा है! मैं समझता हूँ कि यह सही करने के लिए छोड़ दिया जाता है। समस्या यह अभ्यस्त सही होने के बाद छोड़ दिया जाना है। मैं केवल कार्य करता है और कोड मुझे लगता है कि आप मेरी मदद की आवश्यकता होगी .. एक पुनरावर्ती करने के लिए जोड़ देगा मैं 2 retireve उपयोग कर रहा हूँ ..
bool BST::retrieve(const char *key, data& aData) const
{
retrieve(key, aData, parent);
if (key == aData)
{
return true;
}
else
{
return false;
}
}
अन्य पुनः प्राप्त
bool BST::retrieve(const char *key, data &aData, int parent) const
{
if (!items[parent].empty )
{
if (key == items[parent].instanceData.getName())
{
aData.setName(key);
return true;
}
else if (key < items[parent].instanceData.getName() ) // changed -- now goes from 0,2,6 suppose to go to o,2,5
{
parent =(2*parent) + 1;
retrieve(key, aData, parent);
}
else
{
parent =( 2*parent) + 2;
retrieve(key, aData, parent);
}
// return 0;
}
}
== ऑपरेटर समारोह ..
bool operator== (const data& d1, const data& d2)
{
return strcmp(d1.getName(), d2.getName()) == 0;
}
और यहाँ मेरी हेडर फाइल में से एक है ..
#include data.h
class BST
{
public:
BST(int capacity = 5); // constructor (default if no arg supplied)
BST(const BST& aTable); // copy constructor
~BST(); // destructor
void insert(const data& aData);
bool remove(const char *key);
bool retrieve(const char *key, data& aData) const;
void displayArrayOrder(ostream& out) const;
void displayPreOrder(ostream& out) const;
void displayInOrder(ostream& out) const;
void displayPostOrder(ostream& out) const;
int getSize(void) const;
private:
int size;
int maxsize;
int parent;
void expand();
struct item
{
bool empty;
data instanceData;
bool isLeaf;
};
item *items;
void insert(int index, const data & aData );
void displayHeaders(ostream& out)const;
void BST::displayPreOrder(std::ostream &out, int parent)const;
void BST::displayInOrder(std::ostream &out, int parent)const;
void BST::displayPostOrder(std::ostream &out, int parent)const;
bool BST::retrieve(const char *key, data& aData, int parent) const;
void itemsPrinted(ostream &out,int size)const;
};
#endif // BST_H
main () समारोह के हिस्से के ..
database.insert(data(Ralston, Anthony));
database.insert(data(Liang, Li));
database.insert(data(Jones, Doug));
database.insert(data(Goble, Colin));
database.insert(data(Knuth, Donald));
database.insert(data(Kay, Alan));
database.insert(data(Von Neumann, John));
database.insert(data(Trigoboff, Michael));
database.insert(data(Turing, Alan));
displayDatabase(true);
retrieveItem(Trigoboff, Michael, aData);
retrieveItem(Kaye, Danny, aData); // calls search function..
तथा
bool operator< (const data& d1, const data& d2)
{
return strcmp(d1.getName(), d2.getName()) < 0;
}













