今天分享的是利用棧將中綴表示式轉化為字尾表示式。
中綴表示式轉字尾表示式的三個要點:
1、數字直接輸出
2、括號匹配出棧,即括號湊成一對時,就將括號中包括的運算子從棧中彈出並輸出,如棧中依次放入了(+-),則彈出) - +(,並輸出- +。
3、入棧運算子與棧頂元素發生比較,如果遇到的棧頂運算子一直小於入棧運算子優先順序則不斷彈出並輸出,直到遇到更大優先順序的運算子或棧為空。(* / 優先順序大於 + - 優先順序)
**如下:
public
class
testzhongzhuiandhouzhui
int adv2 = 0;// 遇到的另乙個元素優先順序
if (element2 == '+' || element2 == '-') else
//如果運算子優先順序低,則把原來彈出元素放回 如:*遇- 則放回 -遇* 彈出
if (adv2 < adv) else
}stack.push(element);//將運算子放入
return output;
}/**
* 括號配對輸出括號中的內容
* *@return
*/string popif() else
}return output;
}/**
* 中綴表示式換字尾表示式
*@param reg
*/void changezhongzhuitohouzhui(string reg)
//最後還在棧中的元素輸出
if(i==eg.length-1)}}
system.out.println(output);
}public
static
void
main(string args)
}
以上就完成了中綴表示式轉為字尾表示式。 資料結構 鍊錶 JAVA版
和c 並沒有差別不大,主要是指標改為了引用變數,其他的鏈式結構基本可以參照這個 至於樹的話注意下遞迴就大致可以了 package com.sun.study.test class link public void display class linklist public boolean isemp...
Java資料結構與演算法
1.1 概念資料結構主要是研究程式設計問題中計算機的操作物件以及它們之間的關係和操作的學科。1.2 分類儲存結構 存在於計算機世界的物理層面 邏輯結構 一種是資料結構的邏輯層面 1.3 按照資料元素分類線性 存在於計算機世界的物理層面 非線性 一種是資料結構的邏輯層面 1.4 集合結構只考慮資料元素...
Java資料結構與演算法 四 鍊錶
鍊錶是一種物理儲存單元 上非連續 非順序的儲存結構,資料元素的邏輯順序是通過鍊錶中的指標 鏈結次序實現的。鍊錶由一系列結點 鍊錶中每乙個元素稱為結點 組成,結點可以在執行時動態生成。每個結點包括兩個部分 乙個是儲存資料元素的資料域,另乙個是儲存下乙個結點位址的指標 域。相比於線性表 順序結構,操作複...