风雨聆醉
2016-10-28 21:45
请问我的运行结果为什么是这样的(如图)?代码检查跟老师一模一样的。

bool Tree::AddNode(int nodeIndex, int direction, int *pNode)
{
if (nodeIndex < 0 || nodeIndex >= m_iSize)
{
return false;
}
if (m_pTree[nodeIndex] == 0)
{
return false;
}
if (direction = 0)//左孩子
{
if (nodeIndex * 2 + 1 >= m_iSize)
{
return false;
}
if (m_pTree[nodeIndex * 2 + 1] != 0)
{
return false;
}
m_pTree[nodeIndex * 2 + 1] = *pNode;
}
if (direction = 1)//右孩子
{
if (nodeIndex * 2 + 2 >= m_iSize)
{
return false;
}
if (m_pTree[nodeIndex * 2 + 2] != 0)
{
return false;
}
m_pTree[nodeIndex * 2 + 2] = *pNode;
}
return true;
}
你的第七行语句,if(direction==0)出现了两个等号,这种编译器一般不会报错
if(direction == 0)两个等号
求解答,感激不尽。
数据结构探险之树篇
56527 学习 · 121 问题
相似问题