c語言利用棧的「先進後出」的思想,實現括號匹配的問題,源**如下所示:
#include
#include
#define max_len 1024
typedef
char elemtype;
typedef
struct sqstack
sqstack;
elemtype gettop(sqstack *s);
sqstack *initstack();
elemtype pop(sqstack *s);
int push(sqstack *s,elemtype data);
int stackisempty(sqstack *s);
int chioce();
int main()
/*初始化乙個順序棧*/
sqstack *initstack()
/*判斷乙個棧是否為空。如果為空,返回1,否則返回0*/
int stackisempty(sqstack *s)
return -1;
}/*入棧,壓棧*/
int push(sqstack *s,elemtype data)
return -1;
}/*出棧*/
elemtype pop(sqstack *s)
}/*返回棧頂元素的值,但不是出棧*/
elemtype gettop(sqstack *s)
}int chioce()
else
if(str[i]==')' || str[i]==']' || str[i]=='}')
if(str[i]==')' && gettop(stack)=='(' || str[i]==']' && gettop(stack)=='['
|| str[i]=='}' && gettop(stack)=='
else
}i++;
}if(num == 0)
else
else
}
return
0;
}
括號匹配(c語言實現)
我的 www.mengyingjie.com 編寫程式檢查該字串的括號是否成對出現,而且不能交叉出現。輸入 乙個字串,裡邊可能包含 三種括號,結束 輸出 成功 代表括號成對出現並且巢狀正確 失敗 未正確使用括號字元。include include define stack int size 100 ...
C語言實現括號匹配 棧方式
我們在編寫程式的時候經常會遇到括號不匹配而導致語法錯誤的問題,現在我們可以通過棧來自己實現括號匹配的問題,了解其實現細節。我們假設在表示式中只有 這兩種括號,其巢狀的方式是隨意的。檢驗括號是否匹配可以用 期待的急迫程度 這個概念來描述 其實就是優先順序的意思 使用棧的方式進行匹配可以很好的執行這個解...
c語言棧實現括號匹配
在文字處理軟體或編譯程式設計時,常常需要檢查乙個字串或乙個表示式中的括號是否 相匹配?匹配思想 從左至右掃瞄乙個字串 或表示式 則每個右括號將與最近遇到的那個左括 號相匹配。則可以在從左至右掃瞄過程中把所遇到的左括號存放到堆疊中。每當遇到乙個 右括號時,就將它與棧頂的左括號 如果存在 相匹配,同時從...