I'm writing a BST class and have a very strange (at least to me) problem. I can't insert a key in tree using recursion. Iteration works fine, but I would really like to know why recursive way doesn't work.
The code I wrote seems to be fine, so if anyone could point me in right direction...
My code is:
Code:struct sData { long key; char name[20]; }; struct sTINode { sData data; sTINode* left; sTINode* right; }; class cBST : public cAbsTelefonskiImenik { public: cTelefonskiImenikBST(void); ~cTelefonskiImenikBST(void); bool insert(long key, char name[20]); private: // root sTINode *root; void insertLeaf(long key, char name[20], char, sTINode *node); }; cBST::cTelefonskiImenikBST(void) { root=NULL; } bool cBST::insert(long key, char name[20]); { insertLeaf(key, name, root); return true; } void cTelefonskiImenikBST::insertLeaf(long key, char name[20], sTINode *node) { if (node==NULL) { node=new sTINode; node->data.key=key; strcpy(node->data.name, name); node->left=NULL; node->right=NULL; return; } else { if (node->data.key>key) insertLeaf(key, name, node->left); else if (node->data.key<key) insertLeaf(key, name, node->right); } }



LinkBack URL
About LinkBacks


