亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么在深度優先遍歷函數剛開始時就判斷m_pNode[NodeIndex]是不是已經訪問過會導致內存錯誤?

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);
			
			
		}
		
	}
	
}
上面這種寫法就會導致內存錯誤
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);
			}
				
			
			
		}
		
	}
	
}
而這種寫法就是正確的呢,按理來說,在遞歸前跟遞歸后判斷是沒啥區別的啊


正在回答

1 回答

朋友,實測你的代碼沒問題?。?/p>

0 回復 有任何疑惑可以回復我~
#1

sodo0 提問者

哦,好吧,
2017-04-12 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么在深度優先遍歷函數剛開始時就判斷m_pNode[NodeIndex]是不是已經訪問過會導致內存錯誤?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號