记得去年十一月份还没进部门那段时间做的最后一个项目就是用MFC仿照Windows下的计算器写一个自己的简易计算器,当时老师含糊的说了句可以用到栈来实现计算机的功能,可是当时对于栈的概念真的非常模糊,甚至从来没有真正意义上的了解栈。所以就用自己的笨办法实现了标准型的计算器,由于进部门之后,介于Android零基础的学习让我倍感压力,所以就一直没有时间和精力去实现科学计算器
但是现在想想,就算当时我有时间去实现科学计算器,以我当时的算法,应该怎么也无法达到那个效果。但是虽然现在知道了栈的巧妙之处,但是MFC得知识真的已经忘得差不多了,所以还是按部就班的学完数据结构吧。
昨天写了一个迷宫的小程序,基本上用的是C++的知识,但是却没有一点C++的特点,所以今天在写简易计算功能的时候将栈的操作封装成一个类了。方便以后直接拿来用。
#pragma once #ifndef STACK_H #define STACK_H #include <string> using namespace std; typedef struct Node { string oper; struct Node *pTrNext; }NODE,*pNODE; // typedef struct Optd { // int num; // struct Optd *pTdNext; // }OPTD,*pOPTD; class CStack { private: pNODE pTop; pNODE pBottom; public: CStack (); bool IsNull(); void push(string opr); bool pop(string *pOpr); string getTop(); void clear(); ~CStack(); }; #endif