棧的應用(c語言)

2021-10-16 13:09:09 字數 1714 閱讀 7043

新增鏈結描述@[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);

}

完整**

/*括號匹配

棧先進後出的性質與括號匹配的規則一致

*/#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

②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 佔空間增量 棧結構...