package stack;
public
class
calculator
else
else}}
else
//如果下乙個是符號,就將temp轉換為數字進數棧,還要將temp重置
else
if(cstack.
isoperator
(chararray[i+1]
))}}
//當遍歷完後,這條式子也計算得差不多了,
//但是符號棧裡面應該還有應該或者兩個符號還沒計算的
while
(true
) nstack.
push
(nstack.
count
(nstack.
pop(
), nstack.
pop(
), cstack.
pop())
);} system.out.
printf
("%s的結果是%s"
,caculation,nstack.
pop())
;}}class
mystack1
public
boolean
isfull()
return
false;}
public
boolean
isempty()
public
void
push
(int element)
top++
; warehouse[top]
=element;
}public
intpop()
throws exception
int temp=warehouse[top]
; top--
;return temp;
}public
void
show()
}/** 下面是對應需要做計算機寬展的功能
*///返回當前棧頂的元素,但不是pop出來,只是看一下
public
intpeek()
//返回運算子的優先順序,* / 是1, + -是0
public
intpriority
(int operator)
else
}//判斷是不是運算子
public
boolean
isoperator
(char temp)
public
intcount
(int num1,
int num2,
int operator)
return result;
}}
下面不是計算器的**,只是構思
package stack;
/* * 可以利用陣列,鍊錶來模擬棧
* 棧的應用也挺廣泛的:
* 1. 二叉樹的深度遍歷
* 2. 圖的深度優先查詢
* 4. 子程式的呼叫
*/public
class
mystack
public
boolean
isfull()
return
false;}
public
boolean
isempty()
public
void
push
(int element)
top++
; warehouse[top]
=element;
}public
intpop()
throws exception
int temp=warehouse[top]
; top--
;return temp;
}public
void
show()
}public
static
void
main
(string[
] args)
}
棧實現綜合計算器(中綴表示式)
定義兩個棧,乙個數字棧 numstack 乙個符號棧 operstack 我們定義乙個index來遍歷我們的表示式 定義乙個keepstring key幫助我們拼串 如果發現key是乙個數字,此時判斷key 的下乙個元素是不是數字,繼續向後遍歷,直到key的下乙個元素不是數字時,將integer.p...
棧實現綜合計算器(中綴表示式)
1.通過乙個index值 索引 來遍歷我們的表示式 2.如果發現是乙個數字,直接入棧 3.如果發現掃瞄到的是乙個符號,就分下面情況 1 如果發現當前的符號棧為空,就直接入棧 2 如果符號棧有操作符,就進行比較,如果當前的操作符的優先順序小於或者等於棧中的操作符,就需要從數棧中pop出兩個數,再從符號...
棧 實現綜合計算器(中綴表示式)
棧 stack 棧的實現定義乙個top來表示棧頂,初始化為 1 入棧 當有資料入棧,top stack top data 出棧 value stack top top 綜合計算器的實現 計算器設計思路 含小括號 先定義兩個陣列棧。乙個用於儲存數字,乙個用於儲存運算符號 在定義乙個index用於讀取傳...