用順序棧實現匹配括號功能

2021-04-13 22:56:39 字數 1058 閱讀 5571

//用順序棧實現匹配括號功能

#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...