我也差点死在广度优先遍历那。不过我发现老师讲的广度优先遍历有点麻烦,我的博客里用了非递归的方法实现了一下广度优先遍历,而且感觉看起来好懂一下,供大家参考
https://editor.csdn.net/md/?articleId=103711649
https://editor.csdn.net/md/?articleId=103711649
2019-12-26
这里的遍历就是八皇后问题用到的剪枝问题,如果没有下一条边,就剪枝,返回上一级,继续遍历。理解这个递归函数以后,再去写八皇后问题就简单一些了
2019-12-25
老师的课是免费的,但是对学生创造的价值却是无价的。自己自学了好久的数据结构,清华严蔚敏的书看过一遍了,看教学ppt也看了,但是一直都是懂概念,不知道怎么用。通过老师的课,把那些概念都一一编码实现了,自己也跟着编了一遍,感觉理解了很多。感谢老师,您桃李满天下。
2019-12-18
最新回答 / 国宝阿宝
想明白了。应该以“这一层”和“下一层”的说法来说好理解一些,毕竟以“上一层”来说,是以正在查找的和preVec里的节点有连接的节点所构成的一层节点为参照点,然而这一层节点是不一定有的。
2019-08-15
最新回答 / 夜木凝冰
按道理讲,创建动态分配的数组时是不可以初始化的,只能在后续将其所有元素逐一设置为零。 所以,在构造函数中创建完矩阵数组后,是需要给数组全部元素赋值为零的。否则就是随机数。 有个便捷函数是:memset(m_pMatrix, 0, m_iCapacity *m_iCapacity * sizeof(int));。教程里面也有的。
2019-08-08
最新回答 / 木木暮
你的意思是在for (int i = 0; i < m_iCapacity; i++)前用 m_pNodeArray[temp].m_bIsVisited = true;吗?这样效果是一样的,当把点放进去时就已经用到了,等下加下一个的时候才设置为已访问有点说不过去
2019-07-27
想说一下其中的While循环,不应该是edgeCount<m_iCapacity-1,而应该是edgeCount < m_iNodeCount-1。因为以正常理解最小生成树的边数是比顶点数少一,而不是这个顶点的容量。顶点的容量是可以实例化的时候设置成更大的,但已经添加的顶点的数目是不变的。
2019-05-31