資料結構之棧(2 1)應用 括號匹配

2021-10-06 08:44:14 字數 660 閱讀 3129

編寫乙個演算法,判斷鍵盤輸入的表示式是否配對。(假設括號只包含「(」 「)」 。

(1)所謂括號配對,就是

(2)輸入的字串中,可能包含」(」,「)」(也可能沒有),數字,及其他符號。

(3)每當掃瞄字串元素**現 「)」,需要進行括號匹配檢查。檢查方式為——

最近出現的"(",而用什麼儲存 「(」呢? 棧是選擇之一。

棧的儲存狀態是,要麼有"(",要麼為空。

(4)根據以上分析,整個演算法的流程是:

直到發現不匹配或者字串終止。

如果掃瞄字串終止後,棧中還有元素,則配對不成功。

#include 

bool ismatchparen

(elementtype *expression)}}

}if(!

isstackempty

(s))

ismatch=

false

;destroystack

(s);

return ismatch;

}

(1)獲取棧頂元素和出棧 的區別以及使用場景。

參考文獻

《資料結構教程》 第四版 李春葆等

資料結構 棧的應用 括號匹配

include include include 鏈式棧 括號匹配校驗 define success 0 define failure 1 typedef struct nodestnode def typedef struct linkstackstlinkstack def typedef voi...

資料結構之棧及棧的應用(括號匹配問題)

棧簡介 棧是一種特殊的線性表,其只允許在固定的一端進行插入和刪除元素操作。進行資料插入和刪除操作的一段稱為棧頂,另一端稱為棧底。不含任何元素的棧稱為空棧,其特點為 先進後出。棧功能 可以將資料從一種序列變為另一種序列 注 來自網路 1.實現棧的如下介面 實現成動態棧 typedef int data...

資料結構實驗之棧四 括號匹配

time limit 1000ms memory limit 65536k 給你一串字元,不超過50個字元,可能包括括號 數字 字母 標點符號 空格,你的任務是檢查這一串字元中的 是否匹配。輸入資料有多組,處理到檔案結束。如果匹配就輸出 yes 不匹配輸出 no sin 20 10 yesno ma...