C语言计算表达式的值要求:1 待处理的数据从键盘输入,例如:100*(2+3)-200/42 采用树型结构存储数据3 输
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/13 07:00:52
C语言计算表达式的值
要求:
1 待处理的数据从键盘输入,例如:100*(2+3)-200/4
2 采用树型结构存储数据
3 输出树的结构(按形状)和计算结果
4 使用NEW和DELETE函数,结束时需要删除树
请教高手 谢谢
要求:
1 待处理的数据从键盘输入,例如:100*(2+3)-200/4
2 采用树型结构存储数据
3 输出树的结构(按形状)和计算结果
4 使用NEW和DELETE函数,结束时需要删除树
请教高手 谢谢
#include
#include
#define MaxSize 99
void translate(char str[],char exp[]) /*将算术表达式转换成后缀表达式*/
{
struct
{
char data[MaxSize];
int top; /*top为栈顶*/
}op; /*定义一个含data和top的结构体*/
char ch;
int i = 0,t = 0;
op.top = -1;
ch = str[i]; /*将str的每一个数转换成ch*/
i++;
while(ch != '\0') /*ch对应不同的符号的时候对应的转换情况*/
{
switch(ch)
{
case '(':/*当是(的时候,将此括号存入栈op*/
op.top++;op.data[op.top]=ch;
break;
case ')':
while(op.data[op.top] != '(') /*括号内的转换优先级最高,故先提取表达式*/
{
exp[t]=op.data[op.top];
op.top--;
t++;
}
op.top--;
break;
case '+':
case '-':
while(op.top != -1&&op.data[op.top] != '(')
{
exp[t] = op.data[op.top];
op.top--;
t++;
}
op.top++; /*恢复可插入位置*/
op.data[op.top] = ch;
break;
case '*':
case '/':
while(op.top == '/'||op.top == '*') /*优先级*/
{
exp[t] = op.data[op.top];
op.top--;
t++;
}
op.top++;
op.data[op.top] = ch;
break;
case ' ':/*忽略空格,排除误操作*/
break;
default:
while(ch >= '0'&&ch = '0'&&ch
#include
#define MaxSize 99
void translate(char str[],char exp[]) /*将算术表达式转换成后缀表达式*/
{
struct
{
char data[MaxSize];
int top; /*top为栈顶*/
}op; /*定义一个含data和top的结构体*/
char ch;
int i = 0,t = 0;
op.top = -1;
ch = str[i]; /*将str的每一个数转换成ch*/
i++;
while(ch != '\0') /*ch对应不同的符号的时候对应的转换情况*/
{
switch(ch)
{
case '(':/*当是(的时候,将此括号存入栈op*/
op.top++;op.data[op.top]=ch;
break;
case ')':
while(op.data[op.top] != '(') /*括号内的转换优先级最高,故先提取表达式*/
{
exp[t]=op.data[op.top];
op.top--;
t++;
}
op.top--;
break;
case '+':
case '-':
while(op.top != -1&&op.data[op.top] != '(')
{
exp[t] = op.data[op.top];
op.top--;
t++;
}
op.top++; /*恢复可插入位置*/
op.data[op.top] = ch;
break;
case '*':
case '/':
while(op.top == '/'||op.top == '*') /*优先级*/
{
exp[t] = op.data[op.top];
op.top--;
t++;
}
op.top++;
op.data[op.top] = ch;
break;
case ' ':/*忽略空格,排除误操作*/
break;
default:
while(ch >= '0'&&ch = '0'&&ch
C语言计算表达式的值要求:1 待处理的数据从键盘输入,例如:100*(2+3)-200/42 采用树型结构存储数据3 输
、从键盘输入N个数据,求出其中的最大值.要求用自定义函数实现.编程题用C语言成
C语言基础题.有5个学生,每个学生有3门课的成绩,从键盘输入学生数据
C语言 从键盘输入一个简单的数学表达式,计算并显示该表达式的值 求算法和程序
什么是数据的物理(存储)结构?
C语言 设计实验 由键盘输入3个实型数据,代表三角形的三条边,判断它们能否组成三角形,若构成三角形则计算其面积
数据结构试题,某二叉树的节点数据采用顺序存储表示如下:0 1 2 3 4 5 6 7 8 9 10 11 12 13 1
1.数据的存储结构是指____.A、存储在外存中的数据 B、数据所占的存储空间 C、数据在计算机中的顺序存...
C语言编程 计算1!+2!+3!+...+n!的值,其中n的值通过键盘输入
数据的逻辑独立性是指______.A、数据与存储结构的逻辑独立性 B、数据元素之间的逻辑独立性 C、存储结构
判断题1、字符型数据和整数之间是不可以通用的.2、在C语言中,字母的大小写不被区分.3、字符常数和字符串常数的存储是相同
数据在计算机内存中的表示是指 A.数据的存储结构 B.数据结构 C.数据的逻辑结构 D.数据元素之间的关系