二叉树的遍历算法可写为通用形式。例如,通用的中序遍历为: void Inorder(BinTree T,void(*Visit)(Datatype
二叉树的遍历算法可写为通用形式。例如,通用的中序遍历为:
void Inorder(BinTree T,void(*Visit)(Datatype x))
{ if(T)
{Inorder(T->lchild,Visit); /*遍历左子树*/
Visit(T->data); /*通过函数指针调用它所指的函数来访问结点*/
Inorder(T->rchild,Visit); /*遍历右子树*/
}
}
其中Visit是一个函数指针,它指向形如void f(DdataType x)的函数。因此我们可以将访问结点的操作写在雨数f中,通过调用语句Inorder(root,f)将f的地址传递给Visit,来执行遍历操作。请写一个打印结点的数据的函数,通过调用上述算法来完成中序遍历。