已采纳回答 / 晴天cloude
广度优先遍历是一层一层的遍历,同层节点之间的输出顺序与矩阵的排列有关,也就是和一开始节点的输入顺序有关,但是同层节点的输出顺序并不是广度优先搜索的重点。当然要是非按照固定的一种顺序,在输入节点的代码上写个排序就行了。
2018-08-12
已采纳回答 / 幕布斯9075980
void CMap::kruskalTree(){ int value = 0; int edgeCount = 0; vector<vector<int>> nodeSets; //之前一直显示vector subscript out of range,这是因为后面出现对vector直接取vec[]的语句,这是不对的 //因为vector没有分配空间,我在这里分配空间后就可以了。 nodeSets.resize(m_iCapacity*m_iCapacity); vector&l...
2018-04-26
已采纳回答 / SiO
从报错信息上看是容器下标越界的意思就是说你容器的区间传入了错误的值或大或小。随后检查了代码在75行处nodeSets[nodeBInSetLabel].push_back(nodeBIndex);下标处应该是nodeAInSetLabel 修改看看可否解决问题。
2017-06-06
已采纳回答 / 慕娘9255957
应该是要有的,因为声明的节点是存放在开辟出的有固定容量的数组中,所以在添加节点时是需要判断节点数组是否已满。而实际实现,可以将m_iNodeCount与m_iCapacity进行比较,如果相等就return false。
2017-04-12
已采纳回答 / 慕姐3585284
标记的是“边”,而不是“顶点”。每一次选出最小边,然后要把最小边标记为已选择,下一次就会选择没有选过的边的最小边。其实这一句可以省略的,因为在getMinEdge中,已经把选择出来的最小边标记过了。
2016-10-21