上善若水,厚德载物

大道无亲 大象无形 大音希声 大巧若拙 大智若愚 【From small beginnings comes great things.】

 

中缀转后缀的正则表达式“自动机”

        前阵子刚实现GDI+函数绘制函数曲线的功能,闲下来没事实在无聊就试着做下有关正则表达式的自动机,想着做完的时候正好可以嵌入绘图窗口,实现用户输入函数表达式同步生成对应曲线图,不觉一阵狂喜...
       本来滔哥让我用树实现,主要思想是将树的中序改为后序,想来忒麻烦了点,而且本人之前在数据结构方面的造诣实在不高,惭愧惭愧...只好放弃之,犹豫半天后终于打定用中缀表达式转为后缀表达式的方式做,实现过程还需要用到压栈与弹栈对数据进行处理,发现堆栈对后缀表达式进行计算还是相当滴舒服的~
逆波兰表达式 rpn(Reverse Polish Notation)
        a+b ---> a,b,+
        a+(b-c) ---> a,b,c,-,+
        a+(b-c)*d ---> a,d,b,c,-,*,+
        本来打算干脆用STL的<stack>模板进行栈的操作,想着会省事多,后来调试的时候TMD的出现内存泄漏,在stack的push操作时指针出现问题,调了大半天也没搞定...一怒之下干脆自己用<vector>写了个“stack1.h“的头文件实现了栈的基本操作,感觉<vector>模板的强大...
      目前该简陋自动机只实现+,-,*,/,^的相关运算,并支持整数与小数的操作:

测试解决未知的bug中...

      

posted on 2009-05-21 18:05 ChenZB 阅读(943) 评论(0)  编辑 收藏 引用 所属分类: C++


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

统计

常用链接

留言簿(6)

随笔分类

随笔档案

收藏夹

友情链接

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜