需要学习二叉搜索树伪代码的帮助

发布于 2024-10-29 23:51:50 字数 268 浏览 2 评论 0原文

我正在学习期中考试。谁能帮我开始解决教科书上的这个问题?

编写一个函数来打印二叉搜索树中值为 v 的所有项目,使得 min_val ≤ v ≤ max_val。

您可以从以下原型开始: 模板 空白 BSTree::PrintRange( const Comparable & min_val, const 比较 & max_val ) 常量;

根据节点数 n 和 使用 O (Big-Oh) 表示法表示范围内的元素 k 的数量。

非常感谢。

I’m studying for a midterm. Can anyone help me get started with this question from my textbook?

Write a function to print out all items of a binary search tree with value v such that min_val ≤ v ≤ max_val.

You can start from the following prototype:
template
void
BSTree::PrintRange( const Comparable & min_val,
const Comparable & max_val ) const;

Analyze the running time of your function in terms of the number of nodes n and the
number of elements k in the range using O (Big-Oh) notation.

Thank you very much.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

拥抱影子 2024-11-05 23:51:50

您可以通过简单的双重递归来完成。

BSTree::PrintRange( const Comparable & min_val, const Comparable & max_val ) const
{
  if(min_val<=v && v<=max_value)
  {
     print(v);
     if(left!=NULL)
        left.PrintRange(min_val,max_val);
     if(right!=NULL)   
        right.PrintRange(min_val,max_val);
  }
  else if(v<min_val) //go to the right to find a bigger value 
  {
     if(right!=NULL)
       right.PrintRange(min_val,max_val);
  }
  else //v>max_val
  { //go to the left to find a smaller value
     if(left != NULL)
       left.PrintRange(min_val,max_val);
  }

}

You can do it with a simple double recursion.

BSTree::PrintRange( const Comparable & min_val, const Comparable & max_val ) const
{
  if(min_val<=v && v<=max_value)
  {
     print(v);
     if(left!=NULL)
        left.PrintRange(min_val,max_val);
     if(right!=NULL)   
        right.PrintRange(min_val,max_val);
  }
  else if(v<min_val) //go to the right to find a bigger value 
  {
     if(right!=NULL)
       right.PrintRange(min_val,max_val);
  }
  else //v>max_val
  { //go to the left to find a smaller value
     if(left != NULL)
       left.PrintRange(min_val,max_val);
  }

}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文