C++函数的二维数组调用出错
现在学习算法导论,最优二叉查找树的构造(习题15.5-1)运行老出错,自己比较笨,也不知道错哪里了,希望大侠帮助下,谢谢了。
#include<iostream>
using namespace std;
void COB(int root[][6],int i,int j);
int main(){
int root[6][6]={
{0,0,0,0,0,0},
{0,1,1,2,2,2},
{0,0,2,2,2,4},
{0,0,0,3,4,5},
{0,0,0,0,4,5},
{0,0,0,0,0,5}
};
COB(root,1,5);
return 0;
}
void COB(int root[][6],int i, int j){//递归调用
if(i==j)
cout<<"K"<<i;
else {
cout<<COB(root,i,&(root[i,j])-1)<<"是K"<<i<<"的左节点";
cout<<COB(root,&(root[i,j])+1,j)<<"是K"<<i<<"的右节点";
}
}
[解决办法]
COB返回为void,cout输出什么?
[解决办法]
cout<<"K"<<i; 改成 return TEXT;
&(root[i,j])-1 也不对吧
[解决办法]
&(root[i,j])-1&(root[i,j])+1
这两句到底想要表达什么意思?为什么要用到逗号表达式?