实现一个函数模板InOrderHelp大到小输出以r为根的二叉排序树中所有的关键字值不小于key的元素值。输出时,各关键字之间隔一个空格;算法测试时,第一行输入二叉排序树结点个数,第二行依次输入插入二叉排序树的元素,构造出的二叉排序树t以及给定的关键字key作为参数传给alg1.h中的InOrder函数,InOrder函数调用InOrderHelp从大到小输出二叉排序树中所有的关键字值不小于key的元素值。根据要求,补全代码template <class ElemType, class KeyType> void InOrderHelp(BinTreeNode<ElemType> *r, const KeyType &key) // 操作结果: 从大到小输出以r为根的二叉排序树中所有的关键字值不小于key的元素值。输出时,各关键字之间隔一个空格 {template <class ElemType, class KeyType> void InOrder(const BinarySortTree<ElemType, KeyType> &t, const KeyType &key) // 操作结果: 从大到小输出二叉排序树中所有的关键字值不小于key的元素值 { InOrderHelp((BinTreeNode<ElemType> *)t.GetRoot(), key); }}
时间: 2023-07-15 16:11:29 浏览: 88
Java实现二叉排序树
```
template <class ElemType, class KeyType>
void InOrderHelp(BinTreeNode<ElemType> *r, const KeyType &key)
{
if (r == NULL) {
return;
}
InOrderHelp(r->rightChild, key);
if (r->data >= key) {
cout << r->data << " ";
}
InOrderHelp(r->leftChild, key);
}
template <class ElemType, class KeyType>
void InOrder(const BinarySortTree<ElemType, KeyType> &t, const KeyType &key)
{
InOrderHelp((BinTreeNode<ElemType> *)t.GetRoot(), key);
}
```
阅读全文