#include
#include
#define size 10
typedef
char stackelemtype;
typedef
struct
seqstack;
void initstack (seqstack *s)
intpush
(seqstack * s,stackelemtype x)
//順序棧進棧運算
s->top++
;//修改棧頂指標
s->elem[s-
>top]
=x;//x進棧
return1;
}int
pop(seqstack * s,stackelemtype * x)
//順序棧出棧運算
else
}int
gettop
(seqstack * s,stackelemtype * x)
//順序棧讀棧頂元素
else
}int
match
(char ch,
char str)
//判斷兩個括號是否匹配')
||ch==
'('&&str==
')')
else
}int
isempty
(seqstack * s)
//判空
else
}void
bracketmatch
(char
*str)':
if(isempty
(&s)
)else
else}}
}if(isempty
(&s)
)else
}int
main()
執行結果如下:
棧的應用之括號匹配問題
題目描述 如果乙個括號序列中的每個左括號都有乙個右括號與之完成配對,這個序列就是乙個合法的括號匹配序列。例如 char a abc 左右括號匹配不正確 char b abc 右括號多於左括號 char c abc 左括號多於右括號 char d abc 左右括號匹配正確 請用一種資料結構判斷出以上四...
棧的應用之括號匹配
在許多正文中都有括號,特別是在表示程式 數學表示式的正文片段裡,括號有正確配對問題。作為例子,下面考慮python程式裡的括號,在這裡可以看到 不難總結出檢查括號配對的原則 在掃瞄正文過程中,遇到的閉括號應該與此前最近遇到且尚未獲得匹配的開括號配對。如果最近的未匹配開括號與當前閉括號不配對,或者找不...
棧的應用之括號匹配
給定乙個只包括 的字串 s 判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。將左括號進棧,當遇到右括號時與棧頂元素進行括號匹配,左右括號不匹配或者棧為空時退出,匹配則彈出棧頂元素,最後判斷棧是否為空,為空則說明所有的括號都匹配了,反之則存在不匹配的括號...