日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
C中怎么將中綴表達(dá)式轉(zhuǎn)換為后綴表達(dá)式(中綴表達(dá)式轉(zhuǎn)后綴表達(dá)式c語(yǔ)言)

在C語(yǔ)言中,將中綴表達(dá)式轉(zhuǎn)換為后綴表達(dá)式(逆波蘭表示法)可以通過(guò)以下步驟實(shí)現(xiàn):

競(jìng)秀網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司,競(jìng)秀網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為競(jìng)秀超過(guò)千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的競(jìng)秀做網(wǎng)站的公司定做!

1、創(chuàng)建一個(gè)棧用于存儲(chǔ)運(yùn)算符,并創(chuàng)建一個(gè)字符串用于存儲(chǔ)后綴表達(dá)式。

2、從左到右掃描中綴表達(dá)式。

3、如果遇到操作數(shù),將其添加到后綴表達(dá)式。

4、如果遇到運(yùn)算符,則處理?xiàng)m數(shù)倪\(yùn)算符,直到棧為空或者棧頂?shù)倪\(yùn)算符優(yōu)先級(jí)低于當(dāng)前運(yùn)算符,然后將當(dāng)前運(yùn)算符壓入棧。

5、如果遇到左括號(hào),將其壓入棧。

6、如果遇到右括號(hào),處理?xiàng)m數(shù)倪\(yùn)算符,直到遇到左括號(hào)為止,然后彈出左括號(hào)。

7、重復(fù)步驟26,直到掃描完中綴表達(dá)式。

8、處理?xiàng)V惺S嗟倪\(yùn)算符,將其添加到后綴表達(dá)式。

以下是一個(gè)簡(jiǎn)單的C語(yǔ)言實(shí)現(xiàn):

#include 
#include 
#include 
#include 
int precedence(char op) {
    if (op == '+' || op == '')
        return 1;
    if (op == '*' || op == '/')
        return 2;
    return 0;
}
void infixToPostfix(char *infix, char *postfix) {
    int i, j = 0;
    char stack[strlen(infix)];
    int top = 1;
    for (i = 0; i < strlen(infix); i++) {
        if (isalnum(infix[i])) {
            postfix[j++] = infix[i];
        } else if (infix[i] == '(') {
            stack[++top] = infix[i];
        } else if (infix[i] == ')') {
            while (top != 1 && stack[top] != '(') {
                postfix[j++] = stack[top];
            }
            top;
        } else {
            while (top != 1 && precedence(stack[top]) >= precedence(infix[i])) {
                postfix[j++] = stack[top];
            }
            stack[++top] = infix[i];
        }
    }
    while (top != 1) {
        postfix[j++] = stack[top];
    }
    postfix[j] = '\0';
}
int main() {
    char infix[] = "a+b*(c^de)^(f+g*h)i";
    char postfix[strlen(infix)];
    infixToPostfix(infix, postfix);
    printf("Infix expression: %s
", infix);
    printf("Postfix expression: %s
", postfix);
    return 0;
}

這個(gè)程序?qū)⒅芯Y表達(dá)式 "a+b*(c^de)^(f+g*h)i" 轉(zhuǎn)換為后綴表達(dá)式 "abcd^efgh*+^*+i"。


本文題目:C中怎么將中綴表達(dá)式轉(zhuǎn)換為后綴表達(dá)式(中綴表達(dá)式轉(zhuǎn)后綴表達(dá)式c語(yǔ)言)
文章起源:http://m.5511xx.com/article/cocgsoj.html