棧實現綜合計算器

2022-07-06 23:36:19 字數 1296 閱讀 8709

package

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