packagecom.dai.stack;
public
class
calculator
else
}else
}else
else}}
//index +1 是否掃瞄到最後
index++;
if(index>=expression.length())
}while(true
) num1 =numstack.pop();
num2 =numstack.pop();
oper =operstack.pop();
res =numstack.cal(num1, num2, oper);
numstack.push(res);
}system.out.printf("表示式%s = %d\n", expression, numstack.pop());
}}//
先建立乙個棧
class
arraystack2
//棧滿
public
boolean
isfull()
//棧空
public
boolean
isempty()
//入棧 - push
public
void push(int
value)
top++;
stack[top] =value;
}//出棧
public
intpop()
int value =stack[top];
top--;
return
value;
}//返回棧頂元素
public
intpeek()
//遍歷棧,遍歷時需要從棧頂開始顯示資料
public
void
list()
for(int i=top; i>=0; i--)
}//優先順序
public
int priority(int
oper)
//判斷是不是運算子
public
boolean isoper(char
val)
//計算方法
public
int cal(int num1, int num2, int
oper)
return
res;
}}
棧實現綜合計算器
思路分析 實現 package stack public class calculator else else else else 讓index 1,並判斷是否掃瞄到expression最後 index if index expression.length while true num1 numst...
棧實現綜合計算器(中綴)
思路分析 對於乙個表示式,有數字,有符號,因此我們需要建立兩個棧。乙個數棧 用於存放數字 乙個符號棧 用於存放符號。1.通過乙個index值 索引 來遍歷我們的表示式。2.如果我們發現是乙個數字,就直接入數棧。3.如果發現掃瞄到是乙個符號,就分如下情況 3.1如果發現當前的符號棧為空,就直接入棧 3...
棧實現綜合計算
主函式測試 public static void main string args else else else else index if index expression.length 表示式掃瞄完畢,就順序的從數棧和符號棧中pop出相應的數和符號,並執行 while true num1 num...