利用棧來實現簡單的表示式計算

2021-10-02 14:21:38 字數 875 閱讀 7899

class staelseelse 

}}else

}while (!sta2.isempty())

system.out.println("is over");

system.out.println("sta1.pop() = " + sta1.pop());

}int top;

int max;

int arr;

public sta(int max)

public int peek()

public int cal(int num1, int num2, int oper)

return res;

}//是不是乙個運算f符

public boolean isoper(char val)

//優先順序

public int priority(int mark) else if (mark == '+' || mark == '-') else

}public boolean isfull()

public boolean isempty()

public void push(int val)

top++;//這是先找位置,然後賦值

arr[top]=val;

}public int pop()

int res = arr[top];

top--;

return res;

}public void show()

for (int i = top; i >=0 ; i--)

}}

主要就是新的符號優先順序小,我們就先計算。

2.就是字元變成真正數字的轉換。

利用棧來實現計算表示式的自動計算(二)

一 掃瞄一遍出結果的演算法設定 1 設定兩個棧,乙個運算子棧,乙個運算元棧。初始化後將 壓入操作符棧中。2 順序掃瞄,當輸入為運算元時就將其壓入運算元棧。3 當輸入為運算子時,則比較輸入運算子和運算子棧的棧頂運算子的優先順序的大小。若輸入運算子的優先順序高於運算子棧棧頂運算子的優先順序時,則將其輸入...

用棧來實現表示式的計算

棧可以用來實現表示式的計算 分別用兩個棧來儲存運算符合運算數,預設 變成表示式的結束操作,現在運算子棧中放入乙個 建,以便於後面的匹配,然後遍歷 字串,若是運算子,則與運算子的頭元素進行比較,優先順序高,則運算數拿出兩個,與運算子的頭元素進行運算,隨後入運算數的棧,在這裡沒搞明白為什麼這個 遍歷到的...

棧(一)利用棧計算表示式

整理了一下使用資料結構這本書上的內容 pragma once includeusing namespace std templateclass sq stack 建立容量為mm的空棧 templatesq stack sq stack int m 析構函式 templatesq stack sq s...