
2013年3月6日更新
这是我如何重构代码以避免堆栈溢出:
voID Insert(Key_T key,Value_T val,QuickMapNode<Key_T,Value_T> *leaf){ while (true) if(key < leaf->key) { if(leaf->left) leaf = leaf->left; else { leaf->left = new QuickMapNode<Key_T,Value_T>; leaf->left->key = key; leaf->left->val = val; leaf->left->parent = leaf; leaf->left->left = NulL; // Sets the left child of the child node to null leaf->left->right = NulL; // Sets the right child of the child node to null break; } } else if (key >= leaf->key) { if(leaf->right) leaf = leaf->right; else { leaf->right = new QuickMapNode<Key_T,Value_T>; leaf->right->key = key; leaf->right->val = val; leaf->right->parent = leaf; leaf->right->left = NulL; // Sets the left child of the child node to null leaf->right->right = NulL; // Sets the right child of the child node to null break; } }}解决方法 制作非递归的插入算法.您只需要搜索插入位置,这样就不需要堆栈调用了. 总结 以上是内存溢出为你收集整理的c – 二进制树堆栈溢出全部内容,希望文章能够帮你解决c – 二进制树堆栈溢出所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)