摘要:
由于后缀表达式求值比较容易,一个下推栈即可,所以在编译过程中,中缀表达式会转成后缀表达式,简单算法如下:中缀表达式转换为后缀表达式(逆波兰表达式),即调度场算法(shunting yard algorithm)1.建立运算符栈用于运算符的存储,此运算符遵循越往栈顶优先级越高的原则。2.预处理表达式,正、负号前加0(如果一个加号(减号)出现在最前面或左括号后面,则该加号(减号) 为正负号)。 3.顺序扫描表达式,如果当前字符是数字(优先级为0的符号),则直接输出该数字;如果当前字符为运算符或者括号(优先级不为0的符号),则判断第四点。4.若当前运算符为'(',直接入栈; 若为 阅读全文
只有注册用户登录后才能阅读该文。 阅读全文
摘要:
之前使用Nutch搭建了一个小的搜索引擎,主要搜索校内的网站。毕竟是Apache的开源项目,使用起来还是很方便的,今天就回忆一下当时的过程。 首先先说几句废话。Nutch是Lucene下的一个子项目,是Lucene的一个具体应用,后来慢慢强大,就开始逐渐脱离Lucene变成一个独立项目。如果说Nutch=Lucene+Crawler也是不成立的,先不说底层代码的实现情况,就构架来看,Nutch是由两个所谓的网页爬虫系统和搜索器系统组成,这两个系统不仅弱耦合,而且可以分别部署在不同硬件平台上。其中的网络爬虫系统不仅抓取互联网信息,而且由他建立倒排索引;搜索器只根据索引完成查询服务。Nutch本. 阅读全文