用C语言,写了一个简易的计算器,只有加减乘除,没有括号,但是若果要实现括号也是很容易的。
其核心思想是将输入的中缀表达式转换为后缀表达式,转换的思想主要参考了这位大牛的博客:http://blog.csdn.net/ssjhust123/article/details/8001651。
例如:输入中缀表达式2+2*3/2-1,程序可将其转换成后缀表达式2,2,3,2,/,*,+,1,- 其中','是为了间隔开数字,便于提取。最终的输出结果为:4
第一次发帖,本人菜鸟,欢迎高手批评指正!
代码如下:
#include "stdio.h"
#include "string.h"
#include "malloc.h"
typedef struct tag_STACK_STRU
{
float valueData;
struct tag_STACK_STRU *pNext;
}stackList; //用链表实现数据的存储
stackList *g_stOperand = NULL; //操作数
stackList *g_stOperator = NULL; //操作符
void makeEmpty(stackList *stack); //清空栈
char isEmpty(stackList *stack); //判断栈是否为空
void push(stackList *stack, float data); //入栈操作
void pop(stackList *stack); //出栈操作
void calculate(char *p); //计算的子程序
void changeStr(char *p); //将中缀表达式转换为后缀表达式
char suffixStr[1024];
int main()
{
// 业务代码实现处
char *
C语言实现中缀到后缀计算器

本文介绍了一个使用C语言编写的简易计算器,它将中缀表达式转化为后缀表达式进行计算。虽然不支持括号,但扩展到支持括号的计算并不复杂。该计算器的核心算法借鉴了某大牛的博客思路,如将中缀表达式'2+2*3/2-1'转换为后缀表达式'2,2,3,2,/,*,+,1,-',最后得出结果4。"
105043114,9186789,LeetCode高频算法题解析:DFS与BFS实战,"['算法', 'DFS', 'BFS', 'LeetCode', '二叉树']
最低0.47元/天 解锁文章
446

被折叠的 条评论
为什么被折叠?



