关于64行
来源:8-5 优化后的Prim算法的实现
tobeabee
2021-11-21
老师,在视频里PrimBST的64行的assert(edgeTo[v])是不是可以去掉?我自己测试了去掉没有出错。我的理解是在visit()里面每次给索引堆添加(或修改)元素的时候都会更新edgeTo里的相应元素,所以没有必要加那个assert
写回答
1回答
-
在这个课程的代码中(包括我所有的课程的代码中),所有的 assert 都可以删掉。assert 的意义是确认程序中在某一个点其变量的值和我们的预期是一致的,而和核心逻辑无关。assert 是一个调试工具,而非逻辑组建的工具。
(核心逻辑也不应该写在 assert 中,因为 release 的代码,assert 是不运转的。assert 只在 debug 模式起作用。)
继续加油!:)
012021-11-22
相似问题