问题描述
我正在尝试删除给定节点的子树,但它无法正常工作。
这是我的代码:
void remove(T node)
{
int i;
for (i = 0; i < maxNodes; i++)
{
if (data[i] == node)
break;
}
if (data[i] != node)
{
cout << "Node does not exist.";
return;
}
bool flag = true;
int index = i;
while (status[i])
{
for (int i = index; flag == true && i < maxNodes; i = i * 2 + 1)
{
if (!status[i])
flag = false;
else
status[i] = false;
}
index = index * 2 + 2;
i = index;
flag = true;
}
}
代码说明:
-
maxNodes = pow(2,height) - 1;
-
leftChildindex = 2 * i + 1;
-
rightChildindex = 2 * i + 2;
-
data* 存储节点值
-
status* 存储表示数据数组中对应索引处节点存在的布尔值
谁能帮帮我?谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)