加载中
Go的闭包

package main func A(i int) (func() int) {   return func() int {     return i   } } func main() {   var a, b func()int   var c [3]func()int      i:=0   a=func() int {     return i   }   b=f...

2013/07/29 21:30
101
从头开始,搭建一个正则表达式引擎(三)优化、匹配、总结

第四步,消去ε边 理论上,即使不消ε边也是没有问题的,顶天多转移两次状态,多花点时间罢了,对匹配的影响,嗯,不大。 不过出于效率,我们还是要消一下的。 只要在纸上写写画画几次,就能...

2013/03/02 17:41
407
从头开始,搭建一个正则表达式引擎(二)搭建自动机(3.17修正)

第三步,进行有限自动机的搭建操作 我们要构造一个有限自动机,而这个自动机是用一个表达式来构建的,很容易可以想到,我们完全可以把表达式耳的操作数看做一个小号的自动机(或者说是状态图...

2013/03/02 17:40
386
从头开始,搭建一个正则表达式引擎(一)整体构架、预处理

大概和我不以程序员为职业有关吧,我本人是比较喜欢算法的那种,当然是比不了科班出身的。 比如我就写过很多版本的算术表达式解析器,优先级堆栈的;二叉树的;分治策略的;修正计算顺序的…...

2013/03/02 17:40
793
回溯法/深度优先遍历的简单优化技巧

深度优先遍历配合回溯,是解决很多问题的好方法,比如八皇后问题。 皇后的排布规则:n个皇后放在n*n的矩阵里,要求一列只有一个,一行只有一个,任一斜线上只有一个(/和\)。 通常,我们会把...

2012/11/17 00:32
3.6K
学习python多线程和多进程的一点感想

今天学了一下python的多进程和多线程技巧。 多线程方面倒没啥可说的,很简单。值得注意的是,多线程并不限制你一次只执行一个,如果你的线程之间不共享变量的话,是用不到线程锁的,虽然这么...

2012/11/12 00:25
4.1K
从头开始搭建算式表达式解析器,第五部分,结束

这个就是计算和现实了,很简单的递归法(后序遍历) void ShowAtom(Atom *atm) {   if(atm)   {     ShowAtom(atm->Lsun);     ShowAtom(atm->Rsun);     switch(atm->type)     {       case Is_Value:   ...

2012/10/18 11:06
117
从头开始搭建算式表达式解析器,第四部分

这一部分,是解析器的具体实现了。 GetLequ将字符串转化为Atom链表 TryLequ是分析运算符、函数、括号、逗号、数字和变量的排布和数量,排除错误算式 AsmLequ则是对Atom链表进行组装,从开始每...

2012/10/18 11:05
277
从头开始搭建算术表达式解析器,第三部分

这一部分是比较贴近实用的,目的是将字符串划分并且识别为一个个的表达式元件(Atom),使用正则表达式会很简单,但是,怎么说来着,咱们这次要求的不高,只要实现就好,所以额外的支持我都没...

2012/10/18 10:41
97
从头开始搭建算术表达式解析器,第二部分

第二部分,这一部分用来记录各种函数、变量,以及根据标签获得函数、变量的一系列函数,以及反过来根据值获得标签的一系列函数(这是为了方便输出、检测错误)。 因为我已经有好用的解析器了...

2012/10/18 10:38
146
从头开始搭建算术表达式解析器,第一部分

我几年前初学C++的时候,曾经花了很长时间实现了表达式的解析和运算,支持函数和变量,还可以进行求导等操作,是我比较得意的成果,现在一翻看,却觉得满头雾水,大概是当初没有注释的习惯,...

2012/10/17 17:47
444
二叉排序树、平衡二叉树、红黑树、宽度平衡二叉树和树堆的绘制

之前做了这五种树的实现,为了更形象的理解树的效果,特意写了绘制函数,得到下面几个图。 每个树做了三张图,分别为顺序递增、顺序递减、随机的数列插入后的结果。五棵树都使用的同样的三个...

2012/10/13 14:44
978
递归算法的模拟,可以用来加深对递归调用的理解

本文系转帖(进行了一定的修改) 数组版本: 设函数有m个外部参数,n个内部变量。 (有返回值的函数其返回值设为内部变量,静态数据类型设为栈外部数据) 1:设置结构(记录)使有(m+n+1)个...

2012/09/14 13:33
199

没有更多内容

加载失败,请刷新页面

返回顶部
顶部