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...