※ 引述《starsky7372 (點點星空照上風)》之銘言:
: 問題1:
: 如果 下面定義的資料列 比 第一個數字 <totalNumOfNodes> 少時
: 例如:
: 6
: 0 circle 1 2
: 1 triangle 2 4
: 2 square 3 4
: 3 terminal
: 4 terminal
: 這樣會出現 NODE_REDEFINED 的error
: 因為parseNodes裡面迴圈 + 讀進 nodeId & nodeType 的部份是已經寫好的
: 所以讀到 eof 以後 nodeId && nodeType 都會保持在最後一筆
: 然後就 NODE_REDEFINED
: 所以可以資料列比 <totalNumOfNodes> 少嗎?
: 還是說那部份我們也可以自由改 XD
這是在 enum ERROR_TYPE 裡沒有考慮到的 error 狀況
歡迎自行加入新的 error type (e.g. MISMATCH_NODE_DEF_LINE)
: 問題二:
: NODE_UNDEFINED 什麼時候可能會用到阿 @ @"?
: 我覺得是在genConnection時判斷 left & right 會用到,可是是在什麼狀況底下?
: 1. 假設是 left 或 right 連結到沒有被 define 的 node 時,
: 承上個問題,這樣資料列會比#nodes少,就會先跳出程式了
: 根本不用等到這邊...
: 2. 假設是 left or right 大於 <totalNumOfNodes>
: 那我會輸出 ILLEGAL_NODE_ID
: 所以這個問題的答案是
: 用1.然後把問題一改正?
: 用2.然後輸出 NODE_UNDEFINED?
沒錯 NODE_UNDEFINED 的確是不會遇到 我當初定義時沒有想到那麼多
只是想這是在 genConnection() 時的一種可能的狀況 寫來預防的
如果 logically 是不會發生的 我會用 assert() (會 throw exception 或 terminate
the program)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.121.130.225