关于64行

来源:8-5 优化后的Prim算法的实现

tobeabee

2021-11-21

老师,在视频里PrimBST的64行的assert(edgeTo[v])是不是可以去掉?我自己测试了去掉没有出错。我的理解是在visit()里面每次给索引堆添加(或修改)元素的时候都会更新edgeTo里的相应元素,所以没有必要加那个assert

写回答

1回答

liuyubobobo

2021-11-22

在这个课程的代码中(包括我所有的课程的代码中),所有的 assert 都可以删掉。assert 的意义是确认程序中在某一个点其变量的值和我们的预期是一致的,而和核心逻辑无关。assert 是一个调试工具,而非逻辑组建的工具。


(核心逻辑也不应该写在 assert 中,因为 release 的代码,assert 是不运转的。assert 只在 debug 模式起作用。)


继续加油!:)

0
1
tobeabee
谢谢老师!
2021-11-22
共1条回复

算法与数据结构(C++版) 面试/评级的算法复习技能包

课程专为:短时间内应对面试、升职测评等艰巨任务打造

11186 学习 · 1614 问题

查看课程