題目:設計乙個演算法,判斷使用者輸入的表示式中括號是否匹配,表示式中可能含有圓括號、中括號和大括號。
思路:建立乙個順序棧,當表示式中有左括號時將其入棧,當出現右括號時,將棧頂元素出棧,檢查與當前右括號是否匹配。最後如果棧為空則表示該表示式中的括號是匹配的。
**:
#include
#include
using
namespace
std;
#define maxsize 20
//字串棧
class stack
;stack::stack()
stack::~stack()
bool stack::isempty()
bool stack::push(char e)
bool stack::pop(char& e)
bool ismatch(char str,int n)
if(str[i] == ']')
if(str[i] == '}')
}i++;
}if(st.isempty()) return
true;
else
return
false; //遍歷字串後棧不為空說明有不匹配字元
}void main()
測試結果1:
測試資料2:[[[[[)]]]]]
測試結果2:
判斷表示式的括號是否對稱
public class kuohao public static boolean iscorrect string reg if bytes i if left right return false char 與 ascii 轉換,只要強制型別轉換就行 public static int chan...
判斷算術表示式中的括號是否匹配
問題描述 假設乙個算術表示式中包含圓括號 方括號和花括號3種型別的括號,編寫乙個演算法來判斷表示式中的括號是否匹配,以字元 作為算術表示式的結束符。解決問題思想 遇見左括號就進棧,遇見右括號就出棧。當括號匹配時上一次進棧和本次出棧的括號肯定配對,所以不需要迴圈依次出棧判斷括號是否配對 此處之前沒有想...
資料結構演算法 判斷表示式中的括號是否匹配
元旦三天假,閒著沒事幹,就想著複習一下學資料結構時的那些演算法吧。本來是想用c語言來寫的,無奈啊,三四年沒用c了,基本上忘光光,還是用c 來寫吧,而且.net基類庫中已經有了棧 佇列等的實現,直接拿來用用吧。第乙個演算法是用來判斷表示式中的括號 僅限小括號 是否匹配的。其實哥很想找個妹子出去約會啊,...