中綴轉字尾(棧的應用 C語言介紹)

2021-10-06 18:24:54 字數 1012 閱讀 8551

從左到右進行掃瞄,若為數字直接輸出;

若為字元:<1> 若棧為空,直接入棧;

<2> 若該操作符優先順序大於棧出口操作符的優先順序,直接入棧;

<3>若優先順序第於棧出口操作符的優先順序,進行出棧操作;直到該操作符優先順序大於棧出口操作符的優先順序,再將該字元入棧;

若為「(」 直接入棧;

若為「)」,出棧操作,直到遇到「(」,包括「(」;

若掃瞄完,棧中仍有字元,直接出棧;

下面給出**;

#include

#include

#include

#define maxsize 200

typedef

struct stackstack;

void

init

(stack *obj)

intempty

(stack *obj)

intfull

(stack *obj)

intpop

(stack *obj,

char

*c)int

push

(stack *obj,

char c)

intchoose

(char c)

intmain()

else

if(x[i]

=='('

)else

if(x[i]

==')')if

(w==

'(')

break;}

}else

if(w==

'(')

break;}

push

(obj,x[i]);

}else

push

(obj,x[i]);

}}while

(obj->top !=-1

)return0;

}

謝謝瀏覽;

棧應用 中綴轉字尾 字尾計算

中綴表示式 infix expression 即 平時生活中大家對於算式的書寫格式 eg 6 5 2 3 8 3 字尾表示式 post expression 即 把數字和運算子分開,把運算子的優先順序運算內涵到字尾式的數字和運算子的順序 中 故其 優點就是,沒有必要知道任何優先的規則 乙個運算子只對...

中綴轉字尾(棧)

字尾表示式也叫逆波蘭表示式,其求值過程可以用到棧來輔助儲存。假定待求值的字尾表示式為 6 5 2 3 8 3 則其求值過程如下 1 遍歷表示式,遇到的數字首先放入棧中,此時棧如下所示 2 接著讀到 則彈出3和2,執行3 2,計算結果等於5,並將5壓入到棧中。3 讀到8,將其直接放入棧中。4 讀到 彈...

棧的應用之中綴轉字尾

include stdio.h include stdlib.h include string.h include linkstack.h int isnumber char c int isoperator char c int isleft char c int isright char c c...