//用順序棧實現匹配括號功能
#include
#include
#define maxsize 100
typedef char datatype;
typedef struct //定義資料結構
seqstack;
seqstack *initstack()
seqstack *push(seqstack *s,datatype x) //入棧
else}
datatype pop(seqstack *s) //出棧
else}
datatype gettop(seqstack *s) //取出棧頂
else}
bool stackempty(seqstack *s) //判斷是否是空棧
seqstack *clearstack(seqstack *s) //清除棧
else}
bool match(seqstack *s,char c)
else
return false;
case ']':
if(!stackempty(s) && gettop(s)=='[')
else
return false;
case '}':
if(!stackempty(s) && gettop(s)=='
else
return false;
}i++;
}return (stackempty(s));}
int main(int argc, char* argv)
*3)#";
int ch;
for(int i=0;(i<50) && ((ch=getchar()) != '/n');i++)
if(match(s,cc))
printf("匹配!/n");
else
printf("不匹配!/n");
s=clearstack(s);
return 0;
}
順序棧實現括號匹配
採用順序棧程式設計實現 表示式的括號是否匹配問題。要求 輸入帶括號的表示式,判斷其中括號是否配對。擴充套件功能 給出配對括號的位序和不配對括號的位序。include include include include include define overflow 2 define stack init...
用棧實現括號匹配
假設只允許出現兩種括號 圓括號和方括號,其巢狀順序隨意,即不管 或 等都為正確匹配,但是形如 就成為錯誤的匹配。可以用 期待的緊急程度 的概念來描述 如 共8個括號,從左往右依次標代號為1 8,即第乙個 代號為1,第二個 代號為2,第三個 代號為3,依次類推 當計算機收到了第乙個括號後,期待它與第八...
用棧實現括號匹配
構造棧函式並用棧實現括號匹配 以下 include include include 建立乙個棧,用棧求出二進位制轉十進位制,轉八進位制,銷毀,清空,push,pop 用棧來求逆波蘭演算法 用字元來轉成雙精度變數 用棧來檢驗括號是否正確 建立乙個鍊錶棧,並具有插入,刪除操作 define initnu...