二叉树数据结构完全实现(非递归遍历)

最近为了准备考MSE研究生,也顺便复习了一下数据结构的理论知识,其中书中留了一个问题,算是习题吧,叫我们用非递归的方式遍历二叉树。我想既然算是复习,就自己再写一次吧。 二叉树ADT,是一个节点最多可有两个子节点的抽象数据类型,当结点数是N时,树的平均深度是O(根号N),平均查找时间在O(logN)。二叉树在计算机中有着非常广泛的应用,例如数据索引(二叉查找树),编译器设计(表达式树)等等。 遍历二叉树就是用不同的方式,把二叉树里面的数据逐一遍历出来,不同的遍历方式有不同的效果,例如中序遍历,遍历出来的数据一般都是已经排序的,后序遍历可以构建表达式树等。遍历的时候使用递归,当数据量很大时,可能因为应用程序自身的堆栈空间不够而导致程序的崩溃。如果自己建立堆栈的话,不仅可以保证堆栈够用,而且还减少函数调用时保存程序上下文的开销。

给我的上网本换了个500G的大硬盘,2G的内存,LOL~

我的上网本是神舟Q130B,09年买的,是大学时候自己挣的钱买的,当时买成2499,内存1G,硬盘120G。感觉性能很好,从2米高的床上摔下来过,在带水的桌面上放着用过几天,一点影响都没有。 虽然现在性能超高的品牌笔记本也很便宜,但我就是舍不得它,首先是它小巧好带,然后是它的性能基本上符合我的需要,但最最重要的还是它是大学时自己接项目做赚来的,很有纪念意义。 因为硬盘上的数据是很重要的,而且包含多年来积累的经验数据在里面,所以必须换硬盘,顺便把内存也升成2G了。神舟Q130B只能插一根内存。以前的内存暂时都不知道咋办。。

判断核幅射是否到上海的方法及影响

日本地震引起核污染,核幅射有可能影响到我国华东地区。今天看到专家又出来僻谣了,他们不出来倒好,一出来倒更会引起恐慌。 实是求是的说,我早上出门的时候感觉上海还是吹的西风哈! 言归正传,如果核幅射真的到上海了,本着维持社会稳定的文件精神,前期肯定是要被隐瞒消息的。我们的上级需要赢得足够的撤离时间。作为平民,一定要细心观察,赢得富贵的时间。本文仅供参考,或者仅供娱乐,不包含任何政治立场^_^ 看飞机票,看看飞机票有没有涨价,就是到西部机票。比我们高一层的人总会比我们先知道真实情况。火车余票就不要看了,当火车票出现春运情况时,已经是后期了。 看最高leaders,是不是到西部去考察了,或者是不是到欧洲去访问了 看看上海市长,党支部书记最近在干嘛 看看有钱人平时放车库里几个月不开的跑车,是不是不见了 不过上海已经离日本很远了,上海的影响是很小的,最多也就每天同时看两台纯屏显示器的幅射级别。日本人才是真正的受害群体,为他们祈福,希望他们能战胜灾难。 至于放射性元素钚5g毒死全人类的说法,是不用太担心的,因为那是平均算出来的,就是5克除于70亿,就是毒死一个人的份量,然而5g钚掉到海里,被海水稀释了,就算我们喝1000吨海水也喝不到毒死1人的份量。 上海到底幅射情况会有多严重呢,我们大致来算一下:

最近都在跟超大的数字打交道

最近有个项目,需要设计一个超过80T字节数据的快速检索的数据库,兴奋哪!哈哈,天天都在为设计高效的算法和检索模式而设计和计算,80T数据,500ms查询时间是我的心理承受上限~~~~ 算法设计已初有成效。就是真正使用时要生成这么大的数据库需要很久的时间了。呵呵~

Richard Marx 非常好听的歌曲

《Endless Summer Nights》, I love it! 歌词感言:分手总是那么让人伤感,当你回想当时分手的情景,你会不会感叹当初分手是个错误的决定呢?这是一首写得非常优美的歌曲,歌词和调子都很优美. Summer came and left without a warning All at once I looked and you were gone And now you’re looking back at me Searching for a way that we can be Like we were before Now I’m back to what I knew before you Somehow the city doesn’t […]

Monitoring Windows Systems from Linux

最近看到一篇国外友人写的关于windows系统监控的文章,作者阐述了多种Linux监控windows的机制。 我在现在的公司也主要负责网络监控系统的产品研发,对作者的观点很赞同。文章也给了我很多帮助。但是作为整个网络系统的监控来说,用户往往不希望在所有被监控主机上安装具有网络安全隐患的监听进程,这点,是我们作为网络监控产品研发人员需要致力去解决的问题。 我在我已经做好的监控系统里用到的监控技术,下面这篇文章都有提到,包括RRD,WMIC,NRPE,SNMP等等,不过,上面我提过,从提高用户信任度来看,扩展snmp是最好的办法,因为它在网络上只使用snmp,其它监控数据均可使用snmp扩展的方式在远程机上执行相关程序/库/脚本。WMI/SSH方式也是比较好的方法。 Thanks to Eric A. Hall for the nice article.下面是Eric A.Hall的原文:

在Discuz论坛上集成了个团购功能

最近团购真的是太疯狂,太流行了,但从技术上讲,它却是那么的简单,不过还是有很多网站长愿意花重金去购买团购网站源代码,并自己运营起来,说明这个模式还是挺不错的。 朋友的论坛需要,那我也义不容辞的做了个,架构是这样的,前台使用flash,嵌入到论坛中,然后使用独立的后台程序管理用户的订购,我当然用的也是PHP。 这样的架构是尽量减少论坛修改,把团购模块独立出来的最好办法,只需要在论坛中修改很少量的代码,就可以把团购功能集成进去,而后台的代码,因为以前给这个网站做了世界地图啊,老虎机游戏什么的,后台都有个PHP框架了,所以也简单多了。 界面也是我用fireworks自己画的,虽然也参考了别人的网站,打折牌那一块说我是照抄都不过份,呵呵。但是没办法啊,实在是想不到比打折牌看起来更有意思的界面了,下面是这个flash,这儿把按钮功能去掉了,完整的应用等新功能上线后再把链接加上来。

熟悉Nginx,为Nginx编写插件(四) 简单MVC

看了前面三篇文章是不是觉得Nginx的插件开发很简单?多看看Nginx的源代码对我们的开发插件很有帮助的。这篇文章是计划中的最后一篇,我准备在这篇文章里去实现一个可走通的Nginx MVC模块,现在WEB开发不是流行MVC架构嘛,所以我决定实现一个简单的MVC架构来完结我的连载…(连载上瘾了..) 本文地址:http://www.hoverlees.com/blog/?p=369 MVC就是所谓的Model-View-Controller结构,目的就是把程序和美工分开的方式,而且便于维护,好的Model一般都会提高Controller的开发效率,这个很多相信很多人比我要理解得透彻啦。我所设想的架构如下图形式: 麻雀虽小五脏俱全。Model是Nginx及MVC模块,View是一系列的HTML文件,Controller是一系列的动态链接库。 首先,View和Controller一般都是放在两个目录下的,这两个目录的信息肯定不写死在模块里,那我们就把它作为模块的参数,让它们可以在Nginx的配置文件里配置Controller和View所存放的目录。 OK,这儿我们就不需要更多的配置了,然后,我们决定这个MVC的调用指令为”mvc”,它接收两个参数,一个是Controller存放目录,另一个是View存放目录,下面是设置这个指令的代码,前两章说得比较多,这里就不多说了。