• 全部
  • 问答

刚学数据结构,望高手指教

jhappen 2008-03-25 10:30:03
template <class T>
void BinaryTree<T>:: InOrder(BinTreeNode<T> * subTree, void (*visit)(BinTreeNode<T> * p))
{
if(subTree !=NULL){

InOrder(subTree->leftChild, visit);
visit (subTree);
InOrder(suvTree->rightChild, visit);
}
}
这是二叉树里的.
首先画直线那里.我给它传递的什么.这是一个函数指针.给他传递的是函数吗如max(x); 在使用我应该怎样使用???

总体上都不怎么能理解.真希望有人能从各方面给讲解 一下.谢谢
...全文
61 点赞 收藏 1
写回复
1 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
冰矿 2008-03-25
是的,指向函数的指针
函数指针是这个函数的入口地址。
比如你定义了一个
void function(int x){ printf("%d",x); }
int main()
{
void (*pfunc)(int a);/*定义一个函数指针*/
pfunc = function;/*将function的地址赋给pfunc*/
pfunc(100);/*然后就可以用了*/

return 0;
}
同样
void (*visit)(BinTreeNode <T> * p)
也是定义了一个函数指针,这个指针变量的名称为visit,带有一个BinTreeNode类型的指针参数,无返回值,void
因此调用的时候
要传给InOrder函数实参,其中void (*visit)(BinTreeNode <T> * p)对应的就是事先写好的输出函数
比如
你的输出函数为
void print(BinTreeNode <T> * t){.....}
调用时就把print这个函数的指针作为参数传入了。
回复
相关推荐
发帖
数据结构与算法
创建于2007-08-27

3.2w+

社区成员

数据结构与算法相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2008-03-25 10:30
社区公告
暂无公告