資料結構演算法 判斷表示式中的括號是否匹配

2021-09-25 23:40:07 字數 613 閱讀 8090

元旦三天假,閒著沒事幹,就想著複習一下學資料結構時的那些演算法吧。本來是想用c語言來寫的,無奈啊,三四年沒用c了,基本上忘光光,還是用c#來寫吧,而且.net基類庫中已經有了棧、佇列等的實現,直接拿來用用吧。第乙個演算法是用來判斷表示式中的括號(僅限小括號)是否匹配的。(其實哥很想找個妹子出去約會啊,不想複習神馬演算法啊,可惜的是找不到妹子,哭死)

對於表示式中的括號是否匹配,不能僅僅通過統計左括號'('出現的次數和右括號')'出現的次數是否相等來實現,「a*)b+c(」這樣的表示式中的括號顯然是不匹配的。檢驗括號是否匹配最常見的方法是借助於棧這種資料結構,從左到右逐個字元掃瞄表示式,碰到左括號"("則壓入棧中(push),碰到右括號")"則彈出棧頂元素(pop)如果棧為空,則匹配失敗。字串掃瞄完成後,如果棧為空,則匹配成功,否則匹配失敗。**如下:

public static class algorithmaboutstack

stackleftbrackets = new stack();

foreach (char c in expression)

if (c==')')

else}}

return leftbrackets.count == 0;

}}

資料結構表示式

35,15,80,70,20,字尾表達方式 35 15 80 70 20 25 中綴表達方式 35,15,80,70,20 字首表達方式 人的思維方式很容易固定 正如習慣拉10進製。就對2,3,4,8,16 等進製不知所措一樣 人們習慣的運算方式是中綴表示式。而碰到字首,字尾方式。迷茫 其實僅僅是一...

判斷表示式的括號是否對稱

public class kuohao public static boolean iscorrect string reg if bytes i if left right return false char 與 ascii 轉換,只要強制型別轉換就行 public static int chan...

判斷算術表示式中的括號是否匹配

問題描述 假設乙個算術表示式中包含圓括號 方括號和花括號3種型別的括號,編寫乙個演算法來判斷表示式中的括號是否匹配,以字元 作為算術表示式的結束符。解決問題思想 遇見左括號就進棧,遇見右括號就出棧。當括號匹配時上一次進棧和本次出棧的括號肯定配對,所以不需要迴圈依次出棧判斷括號是否配對 此處之前沒有想...