中綴表示式轉逆波蘭表示式二叉樹的做法(Pascal)

2025-01-30 19:50:20 字數 2078 閱讀 7468

1樓:網友

思路:輸入readln(str1)

輸入以後,str1的值就是"1+12-7+19"

然後再用pos和delete將數字與符號分開來,並且儲存於a和b陣列裡,假設a陣列裡數字的數量為k1,b陣列裡符號的數量為k1+1

for i:=1 to k1+1 do

case i of

:a[i+1]:=a[i]+a[i+1];

:a[i+1]:=a[i]-a[i+1];

end;writeln(a[k1]);

這樣就行了。

資料結構,用逆波蘭表示式求四則混合運算的值,使用c/c++

2樓:愛笑的筆跡

3全部你可以直接利棧來寫吧!將中綴表示式轉換成字尾表示式!

然後還是利用棧來計算!這個二叉樹遞迴來遞迴去搞得人都不好了!

將中綴表示式轉換為字尾表示式的搞法:

與棧頂元素比較。

優先順序高的進棧。

否者出棧到字尾表示式中。

表示式中有+,-/( )

現在我們來看他們的優先順序。

毋庸置疑括號的優先順序最高。

所以『(' 進棧,當字元為')'時。

只要棧頂元素不等於』(『就出棧。

然後跳過括號。

只剩下加減乘除的運算子了。

那麼+-的級別最低。

所以直接把前面的字元出棧,然後再把現在的加或者減運算子入棧。

時因為這兩個的優先順序高所以。

棧頂元素等於* /時出棧。

直到棧頂元素優先順序比。

小 時 *或者/進棧。

數字字元直接輸出。

#define maxlen 1000

void getexp(char *str,char*exp)s;;

char ch=str[0];

int i=1,t=0;

while(ch!='\0')

/跳過括號。

break;

case' ':

break;

case'+':

case'-':;;

break;

case'*':

case'/':

while('*'||'/');;

break;

default:

while(ch>='0'&&ch<='9')i--;

exp[t]='#

t++;ch=str[i];

i++;while(!=-1)}

二叉樹的先序序列恰好是逆波蘭表示式麼

3樓:網友

逆波蘭表示式又叫字尾表示式,對應於二叉樹的後序遍歷;

急求高分!!!!如何建立二叉樹?什麼是中綴字首字尾表示式?

4樓:網友

(1)表示式的三種形式:

中綴表示式:運算子放在兩個運算物件中間,如:(2+1)*3;

字尾表示式:不包含括號,運算子放在兩個運算物件的後面,所有的計算按運算子出現的順序,嚴格從左向右進行(不再考慮運算子的優先規則,如:2 1 + 3 *;

字首表示式:同字尾表示式一樣,不包含括號,運算子放在兩個運算物件的前面,如:* 2 1 3。

2)表示式的計算:

由於字尾表示式中沒有括號,不需判別優先順序,計算嚴格從左向右進行,故計算乙個字尾表示式要比計算機一箇中綴表示式簡單得多。

將中綴表示式轉換為字尾表示式的演算法思想:

當讀到數字直接送至輸出佇列中。

當讀到運算子t時,a.將棧中所有優先順序高於或等於t的運算子彈出,送到輸出佇列中;

進棧·讀到左括號時總是將它壓入棧中。

讀到右括號時,將靠近棧頂的第乙個左括號上面的運算子全部依次彈出,送至輸出佇列後,再丟棄左括號。

運用字尾表示式進行計算的具體做法:

建立乙個棧s

從左到右讀字尾表示式,讀到數字就將它轉換為數值壓入棧s中,讀到運算子則從棧中依次彈出兩個數分別到y和x,然後以「x 運算子 y」的形式計算機出結果,再壓加棧s中。

如果字尾表示式未讀完,就重複上面過程,最後輸出棧頂的數值則為結束。

pascal 字尾表示式轉中綴表示式 20分急求

program p1293 const maxl 1000000 type node record ch char l,r longint end var s ansistring list array 1.maxl of node t longint function getlevel x cha...

二階導數的表示式分母為什麼是dx

d就表示的是微分,其實實質是一種運算,求導運算,根據高等數學的說法被求導的平方加到y上,求導的平方加到x上。dy 2 dx 2 就是對函式y求兩次導 微分符號d 2y dx 2 為何二階導數如此表示 50 一階導數符號是dy dx,求導函式是y,因此這個符號中d dx就相當於求導符號.既然d dx是...

下列對牛頓第二定律的表示式F ma及其變形公式的理解,正確的是A由F ma可知,物體所受的合外力

a 物體的合外力與物體的質量和加 速度無關,由物體本身的決定,故a錯誤 b 物體的專質量與合外力以及屬加速度無關,由本身的性質決定,故b錯誤 cd 根據牛頓第二定律a f m,可知,物體的加速度與其所受合外力成正比,與其質量成反比,故c正確 d錯誤 故選 c 下列對牛頓第二定律的表示式f ma及其變...