void?CMap::DepthFirstTraversal(int?NodeIndex)
{
if?(m_pNode[NodeIndex].m_bIsVisited?==?false)
{
cout?<<?m_pNode[NodeIndex].m_iData?<<?"?";
}
m_pNode[NodeIndex].m_bIsVisited?=?true;
for?(int?i?=?0;?i?<m_iCapacity;i++)
{
if?(1==GetvalueOfMatrix(NodeIndex,?i))
{
DepthFirstTraversal(i);
}
}
}
上面這種寫法就會(huì)導(dǎo)致內(nèi)存錯(cuò)誤
void?CMap::DepthFirstTraversal(int?NodeIndex)
{
cout?<<?m_pNode[NodeIndex].m_iData?<<?"?";
m_pNode[NodeIndex].m_bIsVisited?=?true;
for?(int?i?=?0;?i?<m_iCapacity;i++)
{
if?(1==GetvalueOfMatrix(NodeIndex,?i))
{
if?(m_pNode[i].m_bIsVisited?==?false)
{
DepthFirstTraversal(i);
}
}
}
}
而這種寫法就是正確的呢,按理來說,在遞歸前跟遞歸后判斷是沒啥區(qū)別的啊
2017-04-11
朋友,實(shí)測(cè)你的代碼沒問題啊!