最新回答 / 漂白豬
因為當前頂點是否訪問是遍歷時的限制條件,當進行一次深度遍歷之后,所有的頂點都已經訪問;這時如果不resetNode()那么再進行廣度遍歷就不會打印出任何的數值。
2017-08-15
@nullundefine "回答這位同學,獲取最小邊之前,會把待選邊放到集合里面,而把邊放到待選邊集合里面的條件就是另外一個頂點不能是訪問過的,如果訪問過的,就continue不放待選邊里面,就排除了環的情況。"
反問一下如果是先加入待選邊然后在訪問的另外一個點呢 eg:點A 待選邊A-B,A-C,A-D --->選A-C 待選邊加入 C-B,C-E ---->選C-B 不增加待選邊---->這個時候選A-B 也沒有任何限制吧 確實也成環了
反問一下如果是先加入待選邊然后在訪問的另外一個點呢 eg:點A 待選邊A-B,A-C,A-D --->選A-C 待選邊加入 C-B,C-E ---->選C-B 不增加待選邊---->這個時候選A-B 也沒有任何限制吧 確實也成環了
2017-08-11
@醉獨醒“除了邊沒有被訪問過這個條件外,是不是還要考慮兩個頂點是不是都被訪問過。例如:A-B的權值為2時,不考慮兩個頂點是否都被訪問過的話,A、B、F就成了一個環,明顯不對“
回答這位同學,獲取最小邊之前,會把待選邊放到集合里面,而把邊放到待選邊集合里面的條件就是另外一個頂點不能是訪問過的,如果訪問過的,就continue不放待選邊里面,就排除了環的情況。
回答這位同學,獲取最小邊之前,會把待選邊放到集合里面,而把邊放到待選邊集合里面的條件就是另外一個頂點不能是訪問過的,如果訪問過的,就continue不放待選邊里面,就排除了環的情況。
2017-08-10
這里有很多要優化的,在這里做了沒有最小邊的判斷返回了-1,返回之后prim算法沒有對其進行處理。另外,獲取最小邊的兩個循環完全可以合在一個。
2017-08-10