編譯原理問題

5年前 (2020-09-10)閱讀848回復(fù)0
隔岸觀火
隔岸觀火
  • 管理員
  • 發(fā)消息
  • 注冊排名221
  • 經(jīng)驗值180
  • 級別管理員
  • 主題36
  • 回復(fù)0
樓主

你可以用堆棧來處理。

1、首先堆棧為空。

不斷fgetc():

2、如果遇到“{”就入堆棧(Push),并記錄這個“{”的位置(第幾行第幾列),如果遇到“}”就從堆棧里面出一個(Pop)。

3、如果堆棧已空但還遇到“}”,證明當(dāng)前的“}”多余,報錯;

4、如果已經(jīng)到達文件末尾,堆棧非空,證明“{”多余,把堆棧中“{”的位置逐個Pop出來,報錯。

分別對“{”“}”計數(shù)。

不匹配只有兩種情況:

(一)在計數(shù)過程中,“{”的計數(shù)值少于“}”的計數(shù)值。

(二)計數(shù)結(jié)束時,“{”的計數(shù)值不等于“}”的計數(shù)值。

0
0
收藏0
回帖

編譯原理問題 期待您的回復(fù)!

取消
載入表情清單……
載入顏色清單……
插入網(wǎng)絡(luò)圖片

取消確定

圖片上傳中
編輯器信息
提示信息