資料結構之棧 實現簡單計算器

2021-10-19 02:11:06 字數 1484 閱讀 3421

numstack.push(res);//入棧

}//將數棧的最後數,pop 出,就是結果

int res2 = numstack.pop();

system.out.printf("表示式 %s = %d", expression, res2);

}}//先建立乙個棧,直接使用前面建立好

// 定義乙個 arraystack2 表示棧, 需要擴充套件功能

class arraystack2

//增加乙個方法,可以返回當前棧頂的值, 但是不是真正的 pop

public int peek()

//棧滿

public boolean isfull()

//棧空

public boolean isempty()

//入棧-push

public void push(int value)

top++;

stack[top] = value;

}//出棧-pop, 將棧頂的資料返回

public int pop()

int value = stack[top];

top--;

return value;

}//顯示棧的情況[遍歷棧], 遍歷時,需要從棧頂開始顯示資料

public void list()

//需要從棧頂開始顯示資料

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

}//返回運算子的優先順序,優先順序是程式設計師來確定, 優先順序使用數字表示

// 數字越大,則優先順序就越高.

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

}//判斷是不是乙個運算子

public boolean isoper(char val)

//計算方法

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

return res;}}

簡單計算器(棧結構)

描述 讀入乙個只包含 的非負整數計算表示式,計算該表示式的值.輸入格式 多case,包含若干個測試用例,每個用例佔一行,每行不超過200個字元,整數和運算子之間用乙個空格分隔。沒有非法表示式。當一行中只有0時輸入結束,相應結果不要輸出.輸出格式 每個測試用例輸出一行,即該表示式的值,精確到小數點後2...

資料結構課程設計之簡單計算器的實現

從鍵盤上輸入一算術表示式 中綴白大師 包括圓括號,計算出表示式的值。要求 程式對所輸入的表示式作簡單判斷,如有錯給出提示 實現算術四則運算 和平方 運算,能處理雙目運算子 和 能將中綴算術表示式轉換成字尾表示式並輸出,並輸出運算結果。2.1 概要簡述 中綴表示式轉為字尾表示式,從左到右遍歷中綴表示式...

棧實現簡單的計算器

上個星期的作業,現在才改好。基本思路 當我們從鍵盤上輸入一串字元,比如1 2 3 建立兩個棧,乙個存放運算子的棧toperator,乙個存放運算元number,依次遍歷。遇到運算元就依次存放到操作棧裡 遇到運算子時,優先順序高的就直接壓進運算子棧裡,優先順序低的就依次彈出操作棧中的兩個值與運算子進行...