利用棧實現字串表示式計算

2021-09-27 01:52:22 字數 1064 閱讀 2792

棧的基本機構

1、棧典型的結構,先進者後出,後進者先出,從操作特性上來看,棧是一種「操作受限」的線性表,只允許在一端插入和刪除資料。

2、用陣列實現的棧叫做順序棧,用鍊錶實現的棧,我們叫做鏈式棧;

棧的簡單實現:

// 基於陣列實現的順序棧

public class arraystack else if(ch == '-') else if(ch == '*') else if(ch == '/') else if (oprmap.containskey(ch))else {

while (!oprstack.empty() && oprmap.get(ch) <= oprmap.get(oprstack.peek())){

double a = numstack.pop();

double b = numstack.pop();

numstack.push(caltwonumbers(oprstack.pop(),a,b));

oprstack.push(ch);

while (!oprstack.empty()){

double a = numstack.pop();

double b = numstack.pop();

numstack.push(caltwonumbers(oprstack.pop(),a,b));

return numstack.pop();

public static void main(string args) throws scriptexception {

string exp = "3/5*2-5/1*2+6*6";

scriptenginemanager manager = new scriptenginemanager();

scriptengine engine = manager.getenginebyname("js");

object ob = engine.eval(exp);

system.out.println(calexp(exp));

system.out.println(ob);

棧實現字串表示式計算

最近頻繁解決計算方面的問題,其中就有實現字串表示式計算返回結果值需求,通過使用棧實現,需要定義運算符號優先順序,其它就不細說,如下 csstack.cs using system namespace pyhb 設定棧大最大容量 public void initialize int size 入棧 p...

利用API 實現字串表示式的計算

下面實現字串表示式 計算 由筆者收藏的本論壇 改編,記不清是哪位提供的了,非常感謝。option explicit private declare function ebexecuteline lib vba6.dll byval pstringtoexec as long,byval unknow...

棧(一)利用棧計算表示式

整理了一下使用資料結構這本書上的內容 pragma once includeusing namespace std templateclass sq stack 建立容量為mm的空棧 templatesq stack sq stack int m 析構函式 templatesq stack sq s...