您好,求问这个函数怎么调用啊?

int preordertraverse(bitree t,int(* printelement)(elemtype e))
{
if(t)
{
if(printelement(t->data))
if(preordertraverse(t->lchild,printelement))
if(preordertraverse(t->rchild,printelement))
return OK;
return ERROR;
}
else return OK;
}
怎么在其他函数中调用这个函数啊?调用时,应该怎么写啊?preordertraverse(t,int(* printelement)(elemtype e));int(* printelement)(elemtype e)这个地方应该写什么?感谢赐教啊~~
preordertraverse(t,e);preordertraverse(t,&e);都不行~试过 哦,对了,printelement(char e)这是一个函数 还是没解决

Helenr
浏览 311回答 2
2回答

当年话下

int preordertraverse(bitree t,int(* printelement)(elemtype e))第二个参数是个程序指针,你要传入一个返回值为int,参数为elemtype型的函数指针才行的撒…说的简单点第二个参数实际上是个回调;int function1(elemtype e); //声明一个全局的函数,函数内容自己去写int (*pf)(int)=&function1; //把函数指针赋值给pf//调用preordertraverse(t,pf);

神不在的星期二

就是preordertraverse(t,e);就行啦问题是要强制转换
打开App,查看更多内容
随时随地看视频慕课网APP