棧的底層(陣列)實現和棧實現的綜合計算器

2021-09-25 01:36:49 字數 957 閱讀 8945

//使用棧完成計算乙個表示式的結果 10*9-3+5

public class usestack 

public static int calculate(string str) else

}else

} else else } }

index++;

if(index>=expression.length)

} while(!operstack.isempty())

return res; }

}//陣列模擬棧

class arraystack2

//是否棧滿

public boolean isfull()

//是否棧空

public boolean isempty()

//入棧操作

public void push(int value) else }

//出棧操作

public int pop() else }

//彈出棧頂元素

public int peek()

//遍歷棧 從棧頂到棧底部

public void read()

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

//數字越大優先順序越高

public int priority(char oper)

if(oper=='+'||oper=='-') else

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

public boolean isoper(char c) else

return false;

}//計算

public int calculate(int num1,int num2,char oper)

return res;

}}

棧的陣列實現

棧是乙個先入後出的有序資料結構 filo 棧的操作操作只能是在棧頂 top 或者棧底 bottom 進行 宣告 下面的 只是乙個最基礎的實現,沒有經過嚴格的測試。使用陣列模擬棧 public class myarraystack 判斷棧是否已經滿了 public boolean isfull pub...

棧的實現 陣列

前一篇寫了鍊錶棧,這一篇寫陣列棧 首先,還是定義結構體 struct node a typedef struct node a stack a typedef intelementtype a struct node a 下面是具體實現 define eofempty 1 表示棧為空 define ...

棧 Swift陣列實現棧

用陣列實現棧 class stack 棧頂 陣列的最後一條陣列 var peek anyobject?初始化棧,也就是初始化陣列 init 入棧操作 向陣列中追加資料 func push object anyobject 出棧操作 從陣列中移除最後一條資料 func pop anyobject?el...