登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

聊天机器

Chatbot's private blog

 
 
 

日志

 
 

关于二叉树之绝对不能使用递归的说明  

2009-11-02 10:04:03|  分类: 程序理论 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

数据结构中的二叉树,很多人喜欢使用递归函数去操作。
例如
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遍历,减少函数的进出盏的操作。

  评论这张
 
阅读(158)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018