編譯原理問(wèn)題

4年前 (2020-09-10)閱讀793回復0
隔岸觀(guān)火
隔岸觀(guān)火
  • 管理員
  • 發(fā)消息
  • 注冊排名221
  • 經(jīng)驗值190
  • 級別管理員
  • 主題38
  • 回復0
樓主

你可以用堆棧來(lái)處理。

1、首先堆棧為空。

不斷fgetc():

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

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

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

分別對“{”“}”計數。

不匹配只有兩種情況:

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

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

0
0
收藏0
回帖

編譯原理問(wèn)題 期待您的回復!

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

取消確定

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