棧的應用 括號匹配

2022-03-07 02:05:32 字數 1027 閱讀 3085

描述:

假設表示式中允許包含兩種括號:圓括號和方括號,其巢狀的順序任意,即(())或[()]等都為正確的格式,而[(])為不正確的格式。利用棧程式設計序檢驗表示式中的括號是否合法。

思路:1,先實現棧的基本操作:初始化,入棧,出棧等。

2,每讀入乙個括號,若是右括號,則或者是置於棧頂的左括號得以消解,或者是不合法的情況;若是左括號,則直接入棧。

細節:遇左括號則進棧,遇右括號,出棧與之匹配消解。

#include #include 

#define maxsize 100typedef

char

datatype;

typedef

struct

stack;

void initstack(stack *s)

void push(stack *s,datatype x)

int emptystack(stack *s)

void pop(stack *s,datatype *x)

void

main()

[()]";

int flag=1

; stack s;

datatype e;

initstack(&s);

//scanf("%s",s);

for(int i=0;i< strlen(str);i++)

')else

' && e!='}}

}if (flag==1 && emptystack(&s))

printf(

"表示式中的括號合法!\n");

else

printf(

"不合法!\n");

}

結果:

棧應用 括號匹配

假設表示式中允許包含兩種括號 圓括號和方括號。編寫乙個演算法判斷表示式中的括號是否正確配對。由括號構成的字串,包含 如果匹配輸出yes,否則輸出no。複製 yes解決思想 拿到字串後,遍歷字串,當遇到左括號就進棧,右括號棧頂元素出棧,如果括號是匹配的,則最終棧空。include includetyp...

棧的應用 括號匹配

3.1棧的應用 括號匹配 一 實驗目的1 掌握堆疊特殊線性表的儲存方式的基本操作方法。2 掌握堆疊後進先出運算原則在解決實際問題中的應用。3 掌握使用棧的原理來解決表示式中的括號配對問題。二 實驗內容 假設乙個算術表示式中包含圓括弧 方括弧三種型別的括弧,編寫乙個程式用於判別表示式中括弧是否正確配對...

棧的應用 括號匹配

description 在實際程式設計中,我們經常會巢狀使用括號,如 如果括號太多,可能會出現括號不匹配的情況,比如 as 等。現希望你們編寫乙個程式,判斷輸入的一段語句中的括號是否匹配。必須使用棧實現這個功能。input 字串s,s是由 以及數字字母組成的字串。output 若括號使用規範且匹配,...