昨天群里讨论一个关于24点的程序 我个人感觉用栈的方法比较好,而且时间复杂度也不高又由于本人对堆栈用得还不是太熟悉,借此程序加深以下对堆栈的了解程序的基本功能是 1)随机产生4个小于12的随机整数 2)让游戏者选择选择+ - * / 4种符号进行操作,使得结果为24,正确提示正确,错误提示结 果错误 3)设置一个按钮,按下后列出所有正确的结果(这里是算法的关键,涉及到堆栈的各种用法,以及中缀表达式转换为后缀表达式的算法)
具体的实现
一:上面的的算法基于vc++中的MFC的对话框
1)基本界面初步设定为
num1,num2,num3,num4 是4个随机产生的数
中间的下拉框是你要选择的符号
右边的方框是列所有可能的结果
由于手头没有一点资料,就是栈类的定义都要自己定义,所以时间可能长点
主要有以下的几点比较难以实现
1)用栈的方式将中缀表达式转换为后缀表达式
2)然后还是用栈的方法将转换后的后缀的后缀表达式转换为表达式的值
具体的细节等今天搬完家后在来实现了