Visual c++ 如何实现二进制搜索树的显示功能?
如果display作为函数指针传递给函数inoder,那么如何为字符串的二叉搜索树实现display函数Visual c++ 如何实现二进制搜索树的显示功能?,visual-c++,binary-tree,function-pointers,Visual C++,Binary Tree,Function Pointers,如果display作为函数指针传递给函数inoder,那么如何为字符串的二叉搜索树实现display函数 typedef void (*FunctionType)(TreeItemType& anItem); void display(TreeItemType& anItem); void BinarySearchTree::inorder(TreeNode *treePtr, FunctionType visit) { i
typedef void (*FunctionType)(TreeItemType& anItem);
void display(TreeItemType& anItem);
void BinarySearchTree::inorder(TreeNode *treePtr,
FunctionType visit)
{ if (treePtr != NULL)
{ inorder(treePtr->leftChildPtr, visit);
visit(treePtr->item);
inorder(treePtr->rightChildPtr, visit);
} // end if
} // end inorder
我试着写一些东西,比如:
cout << anItem;
显示树的项(字符串)
你能发布
TreeItemType
的定义吗?你能澄清一下“它不起作用”是什么意思吗?BinarySearchTree::inorderTraverse()看起来像什么?tree.inorderTraverse(display)可能类似于:void inorderTraverse(FunctionType visit){inorder(_head,visit);},其中_head是指向树头的私有字段。
visit(treePtr->item);
int main()
{
BinarySearchTree tree;
TreeItemType item = "20";
tree.searchTreeInsert(item);
tree.inorderTraverse(display); // call to inorderTraverse calls inorder
return 0; // indicates successful completion
} // end function main
void display(TreeItemType& anItem)
{
cout << anItem;
}
typedef string TreeItemType;