数据结构中的二叉树,很多人喜欢使用递归函数去操作。
例如
Insert(int index, Node node)
{
假如 index > 当前index
insert(index, node->right)
否则
insert(index, node->left)
}
或者
Delete(Node node)
{
Delete(node->left)
Delete(node->right)
delete <当前节点>;
}
这样的好处是绝对方便理解,很适合新手学习。然而,作为一个绝对底层的类,这样做是绝对不允许的。
大家都知道,数据结构是用来储存大量数据而存在的,也就是说,数据量可能达到几千、几万、甚至几十万。而且随时超过百万级。
而使用递归函数,最大的问题就是慢,并且,最严重的就是会消耗大量的内存。而且,经过无数次暴力测试验证得出,这样的写法绝对过不了压力测试。
而正确的使用方法,应该是使用while或者do while遍历,减少函数的进出盏的操作。
评论