码迷,mamicode.com
首页 > 编程语言 > 详细

调度场算法&&中缀表达式=>后缀表达式

时间:2021-02-20 12:11:32      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:std   stack   turn   class   head   har   转化   ||   continue   

#include<stdio.h>
#include<string.h>
int main(void){
    char ch,stro[1001],stack[1001];
    int numstack[1001];
    int top=-1,head=-1;
    /*************************************************/
    /*将中缀表达式转化为后缀表达式*/
    while((ch=getchar())!=EOF){
        if(ch== ) continue;
        else if(ch<=9&&ch>=0)
            stro[++head]=ch;
        else if(ch==+||ch==-){
            if(top==-1)
                stack[++top]=ch;
            else{
                while(true){
                    if(stack[top]==+||stack[top]==-){
                        stro[++head]=stack[top];
                        top--;
                    }else{
                        stack[++top]=ch;
                        break;
                    }
                }
            }
        }else if(ch==(){
            stack[++top]=ch;
        }else if(ch==)){
            while(true){
                if(stack[top]!=(){
                    stro[++head]=stack[top];
                    top--;
                }else{
                    top--;
                    break;
                }
            }
        }
    }   
    
    while(top>=0){
        stro[++head]=stack[top];
        top--;
     }
    
    stro[++head]=\0;
    /*************************************************/
    /*转化结束*/
    
    /*开始计算*/
    top=-1;
    for(int i=0;stro[i]!=\0;i++){
        if(stro[i]<=9&&stro[i]>=0)
            numstack[++top]=stro[i]-0;
        else if(stro[i]==+){
            numstack[top-1]+=numstack[top];
            top--;
        }else if(stro[i]==-){
            numstack[top-1]-=numstack[top];
            top--;
        }
    }
    printf("%d",numstack[0]);
    return 0;
}

 

 

逆波兰

调度场算法&&中缀表达式=>后缀表达式

标签:std   stack   turn   class   head   har   转化   ||   continue   

原文地址:https://www.cnblogs.com/WhiteThornZzf/p/12347912.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!