**
#include
#include
#include
#define max 128
//宣告堆疊元素:儲存左括號的型別和位置
struct brackets
;struct brackets stack[max]
;//定義棧
int top =0;
//定義棧頂且初始化
int ispaired;
//定義配對標誌位
void
push
(char bracket,
int pos)
stack[top]
.ch = bracket;
stack[top]
.position = pos;
top++;}
struct brackets pop
(void
)return stack[
--top];}
char
*markinit
(int size)
//標記字串初始化函式
intdetectmark
(char
*mark)
//檢測標記函式
return0;
}int
main
(void
)else}if
(top ==
0&& ispaired ==0)
//未找到左圓括號與之匹配}if
(*p ==
']')
else}if
(top ==
0&& ispaired ==0)
//未找到左中括號與之匹配}}
while
(top !=0)
//標記棧中所有未配對的括號
mark[
pop(
).position]
='^';if
(detectmark
(mark)
)printf
("%s\nnot paired.\n"
, mark)
;else
printf
("paired.\n");
system
("pause");
return0;
}
資料結構 括號匹配
三種括號形式 輸入一段字串,判斷其括號是否匹配。如下 括號匹配問題 include include include define stack init size 100 define stackincrement 10 define error 0 define true 1 define fals...
資料結構 括號匹配
利用棧來實現字串的左右括號匹配 思路 對於字串遍歷 左括號字元入棧 遇到右括號字元就從棧頂彈出原素 彈出和右括號進行匹配 如果匹配成功繼續 匹配不成果報錯 注意 入棧的是字串的位址 不能說會變的臨時變數 接字串時需要用char 型別去接 並且進行強制型別轉換 匹配的時候再用 out表示彈出元素取位址...
資料結構 括號匹配問題
給定乙個字串,其中的字元只包含三種括號 花括號 中括號 圓括號 即它僅由 這六個字元組成。設計演算法,判斷該字串是否有效,即字串中括號是否匹配。括號匹配要求括號必須以正確的順序配對,如 或 等為正確的格式,而 或 或 均為不正確的格式。這個問題可以用棧stack來解決,具體的 如下 pragma o...