首先輸入乙個待匹配的括號序列,如果是左括號將其壓入棧中,如果是右括號則與當前棧頂的括號相匹配(左中括號匹配右中括號,左小括號匹配右小括號)。
#include
#include
#define maxsize 100
using
namespace std;
typedef
char elemtype;
typedef
struct
sqstack;
// 棧頂指標指向棧頂元素
void
initstack
(sqstack *st)
//初始化棧
intstackempty
(sqstack *st)
//判斷棧為空
void
push
(sqstack *st,elemtype x)
//元素進棧
else
}void
pop(sqstack *st,elemtype *e)
//出棧
else
}int
main()
else
if(brackets[count]
==']'
|| brackets[count]
==')'
)else
} count++;}
//fflush(stdin);
if(st-
>top ==-1
)printf
("匹配成功\n");
else
}
棧實現括號匹配
匹配思想 從左至右掃瞄乙個字串 或表示式 則每個右括號將與最近遇到的那個左括號相匹配。則可以在從左至右掃瞄過程中把所遇到的左括號存放到堆疊中。每當遇到乙個右括號時,就將它與棧頂的左括號 如果存在 相匹配,同時從棧頂刪除該左括號。演算法思想 設定乙個棧,當讀到左括號時,左括號進棧。當讀到右括號時,則從...
用棧實現括號匹配
假設只允許出現兩種括號 圓括號和方括號,其巢狀順序隨意,即不管 或 等都為正確匹配,但是形如 就成為錯誤的匹配。可以用 期待的緊急程度 的概念來描述 如 共8個括號,從左往右依次標代號為1 8,即第乙個 代號為1,第二個 代號為2,第三個 代號為3,依次類推 當計算機收到了第乙個括號後,期待它與第八...
順序棧實現括號匹配
採用順序棧程式設計實現 表示式的括號是否匹配問題。要求 輸入帶括號的表示式,判斷其中括號是否配對。擴充套件功能 給出配對括號的位序和不配對括號的位序。include include include include include define overflow 2 define stack init...