基本思想:左括號進棧。
右括號與棧頂元素匹配。
// 棧在括號匹配中的應用
#define _crt_secure_no_warnings
#include
#include
#include
#define maxsize 100
/*定義結構體*/
typedef
struct
sqstack;
sqstack s;
// 定義全域性結構體變數
/*函式宣告*/
// 字串初始化
char
*initstr
(char
* strp)
;// 初始化棧】
void
initstack()
;// 進棧
void
push
(char
* strpelem)
;// 出棧
char
pop();
// 匹配字串
intmatchstr
(char str1,
char str2)
;int
main
(int argc,
char
** ar**)
}";char str[maxsize]
;char
* strp =
null
;int flag =1;
// 正確格式標誌
char pop_elem;
// 出棧元素
// // 字串初始化
strp =
initstr
(str)
;//strp = &str;
/*printf("len===-> %d\n", strlen(strp));
printf("*****00000000= %c\n", *(strp + 1));*/
// 初始化棧】
initstack()
;/*依次讀取符號,是左括號則進棧,是右括號則與棧頂元素匹配。檢視結果*/
for(
int i =
0; i <
strlen
(strp)
; i++)'
:// 出棧並匹配
pop_elem =
pop();
flag =
matchstr
(pop_elem,
'// 如果有一次不匹配,則結束迴圈if(
!flag)}if
(flag)
else
system
("pause");
return0;
}// 字串初始化
char
*initstr
(char
* strp)
}return strp;
}// 初始化棧
void
initstack()
// 進棧
void
push
(char
* strpelem)
char
pop(
) pop_elem = s.data[s.top--];
return pop_elem;
}int
matchstr
(char str1,
char str2)
return0;
}
c語言 括號匹配檢測(棧的應用)
括號匹配檢測,對於一串帶括號的字元 1.如果是左括號,入棧 2.如果是右括號,與棧頂元素比較,若形成括號對,則棧頂左括號出棧 若不能形成括號對,則括號不能匹配 include include define init size 6 初始棧空間 define incre size 2 佔空間增量 棧結構...
棧應用 括號匹配
假設表示式中允許包含兩種括號 圓括號和方括號。編寫乙個演算法判斷表示式中的括號是否正確配對。由括號構成的字串,包含 如果匹配輸出yes,否則輸出no。複製 yes解決思想 拿到字串後,遍歷字串,當遇到左括號就進棧,右括號棧頂元素出棧,如果括號是匹配的,則最終棧空。include includetyp...
棧的應用 括號匹配
3.1棧的應用 括號匹配 一 實驗目的1 掌握堆疊特殊線性表的儲存方式的基本操作方法。2 掌握堆疊後進先出運算原則在解決實際問題中的應用。3 掌握使用棧的原理來解決表示式中的括號配對問題。二 實驗內容 假設乙個算術表示式中包含圓括弧 方括弧三種型別的括弧,編寫乙個程式用於判別表示式中括弧是否正確配對...