用C语言数据结构算法编写程序!算术表达式求值:以字符序列的形式从终端输入语法正确的、不含变量的整数表

发布时间:2021-03-16 00:02:09

用C语言数据结构算法编写程序!算术表达式求值:以字符序列的形式从终端输入语法正确的、不含变量的整数表达式,利用给定的算符优先关系,实现对算术四则混合运算表达式的求值,并演示在求值过程中运算符栈、操作数栈、操作数栈和主要操作的变化过程.注意:要求表达式中的整数可以是多位的.

网友回答

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define LEN sizeof(stacknode)
typedef struct stacknode
{    char data;
    struct stacknode *next;
}stacknode;
typedef struct
{    stacknode *top;
}LinkStack;
int precedence(char c)
{    switch (c)
    {
        case '#':return 0;
        case '+':return 1;
        case '-':return 1;
        case '*':return 2;
        case '/':return 2;
        case '(':return 3;
        case ')':return 0;
        default :return printf("\nError:preccedence函数内输入错误!输入了:%c\n",c);
    }
}void InitStack(LinkStack *s)
{    s->top=NULL;
}int PUSH(LinkStack *s,char d)
{    stacknode *t;
    t=(stacknode*)malloc(LEN);
    //if((t=(stacknode*)malloc(LEN))==NULL)return 0;
    t->data=d;
    t->next=s->top;
    s->top=t;
    return 1;
}int Top(LinkStack *s,char *x){    stacknode *p;    if(s->top==NULL)return 0;    p=s->top;    s->top=p->next;    *x=p->data;    free(p);    return 1;
}
以上问题属网友观点,不代表本站立场,仅供参考!