zoukankan      html  css  js  c++  java
  • 数据结构实验之栈二:一般算术表达式转换成后缀式

                                                                数据结构实验之栈二:一般算术表达式转换成后缀式

    Description

    对于一个基于二元运算符的算术表达式,转换为对应的后缀式,并输出之。

    Input

    输入一个算术表达式,以‘#’字符作为结束标志。

    Output

    输出该表达式转换所得到的后缀式。

    Sample Input

    a*b+(c-d/e)*f#

    Sample Output

    ab*cde/-f*+

    Hint

     
    #include<stdio.h>
    #include<ctype.h>
    int cpa(char ch){
        switch(ch){
            case '(': return 0;
            case '+':
            case '-':
                return 1;
            case '*':
            case '/':
                return 2;
            case ')':
                return 3;
        }
    }
    int main(){
        char shi[1000], str;
        int front=0;
        while(scanf("%c", &str), str != '#') {
            if(isalpha(str))
                printf("%c", str);
            else {
                if(front==0) shi[++front] = str;
                else{
                    if(cpa(str)==0)
                        shi[++front] = str;
                    else if(cpa(str)==3) {
                        while(shi[front]!='(')
                            { printf("%c", shi[front]); front--; }
                        front--;
                    }
                    else if(cpa(str) <= cpa(shi[front]) )  {
                        printf("%c", shi[front]);
                        front--;
                        shi[++front]  = str;
                    }
                    else    //其余情况为<span style="font-family: 'times new roman';">cpa(str)  >  cpa(shi[front])</span>
                        shi[++front] = str;
                }
            }
        }
        while(front!=0) {
            printf("%c", shi[front]);
            front--;
        }
        printf("
    ");
    return 0;
    }



  • 相关阅读:
    vim 去掉自动注释和自动回车
    性别回归
    表情识别
    python list按字典的key值排序
    pytorch学习率策略
    python将list元素转为数字
    php面向对象
    mysql
    mysql
    mysql
  • 原文地址:https://www.cnblogs.com/Genesis2018/p/9079907.html
Copyright © 2011-2022 走看看