前阵子刚实现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中...