新增鏈結描述@[toc]
完整**bool
bracketcheck
(char str,
int length)
//括號匹配
else
char topelem;
pop(s, topelem)
;//棧頂元素出棧
if(str[i]
==')'
&& topelem !=
'(')
return
false;if
(str[i]
==']'
&& topelem !=
'[')
return
false;if
(str[i]
=='}'
&& topelem !='}
return
stackempty
(s);
}
①a+b/*括號匹配
棧先進後出的性質與括號匹配的規則一致
*/#include
#include
#define maxsize 10
using
namespace std;
typedef
struct sqstack sqstack;
void
initstack
(sqstack& s)
//進棧操作
bool
push
(sqstack& s,
char x)
bool
pop(sqstack& s,
char
& elem)
bool
stackempty
(sqstack s)
else
return
false;}
bool
bracketcheck
(char str,
int length)
//括號匹配
else
char topelem;
pop(s, topelem)
;//棧頂元素出棧
if(str[i]
==')'
&& topelem !=
'(')
return
false;if
(str[i]
==']'
&& topelem !=
'[')
return
false;if
(str[i]
=='}'
&& topelem !='}
return
stackempty
(s);
}int
main()
else
printf
("括號不匹配\n");
return0;
}
②a+b-c
③a+b-c*d
又稱波蘭表示式:運算子在兩個運算元前面
①+ab
②-+abc
③-+ab*cd
又稱逆波蘭表示式:運算子在兩個運算元後面
①ab+
②ab+c-
③ab+c*d-
棧可以計算字尾表示式
c語言棧的應用
棧的作用是將遞迴函式轉換成非遞迴函式,由於在階乘中只有乙個引數,把引數入棧即可 int nfact int n 出棧,模擬函式返回過程 while isemptystack stack return res 利用堆疊進行一位表示式的運算 在生活中用的是類似 9 7 8的表示式,這種表示式叫做中綴表示...
C語言棧的應用
c語言棧的應用 棧的作用是將遞迴函式轉換成非遞迴函式,由於在階乘中只有乙個引數,把引數入棧即可。int nfact int n 出棧,模擬函式返回過程 while isemptystack stack return res 利用堆疊進行一位表示式的運算 在生活中用的是類似 9 7 8的表示式,這種表...
c語言 括號匹配檢測(棧的應用)
括號匹配檢測,對於一串帶括號的字元 1.如果是左括號,入棧 2.如果是右括號,與棧頂元素比較,若形成括號對,則棧頂左括號出棧 若不能形成括號對,則括號不能匹配 include include define init size 6 初始棧空間 define incre size 2 佔空間增量 棧結構...