推 sainteyes:我把她歸在ILLEGAL上耶,因為她和沒有4是執行時是一樣的 11/06 20:06
※ 引述《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
: 問題二:
: NODE_UNDEFINED 什麼時候可能會用到阿 @ @"?
: 我覺得是在genConnection時判斷 left & right 會用到,可是是在什麼狀況底下?
: 1. 假設是 left 或 right 連結到沒有被 define 的 node 時,
: 承上個問題,這樣資料列會比#nodes少,就會先跳出程式了
: 根本不用等到這邊...
: 2. 假設是 left or right 大於 <totalNumOfNodes>
: 那我會輸出 ILLEGAL_NODE_ID
: 所以這個問題的答案是
: 用1.然後把問題一改正?
: 用2.然後輸出 NODE_UNDEFINED?
把 <totalNumOfNodes>改小就可以了,例如
4
0 circle 1 2
1 triangle 2 4
2 square 3 4
3 terminal
4 terminal
主要原因是出在:
Graph::parseNodes(ifstream& infile)
{
…
for (unsigned i = 0; i < _numNodes; ++i)
…
}
因為_numNodes=4,所以nodeId只會執行到3,不會出現ILLEGAL_NODE_ID
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.25.195