一、题目要求

编写一个递归函数printRange(),传入一个BST、一个较小的值和一个较大的值,按照顺序打印出介于两个值之间的所有结点。函数printRange()应尽可能少地访问BST的结点。(C++实现)

二、题解

代码如下:

void PrintRange(BinarySearchTree* bst,int minData,int maxData) {//中序 保证按大小顺序打印范围内的数while (bst->root) {BinaryTreeNode *pointer = bst->root;//向左子树查找,直到某棵左子树的根的值不大于给定的最小值if (pointer->value>minData){bst->root=pointer->lChild;PrintRange(bst,minData,maxData);}//如果值在范围内则打印输出if (pointer->value > minData && pointer->value < maxData)cout << pointer->value << " ";//向右子树查找,直到某棵右子树的根的值不小于给定的最大值if (pointer->value<maxData){bst->root=pointer->rChild;PrintRange(bst,minData,maxData);}}}

在BST(二叉搜索树)中查找介于给定范围之内的值相关推荐

  1. 数据结构中常见的树(BST二叉搜索树、AVL平衡二叉树、RBT红黑树、B-树、B+树、B*树)

    原文:http://blog.csdn.net/sup_heaven/article/details/39313731 数据结构中常见的树(BST二叉搜索树.AVL平衡二叉树.RBT红黑树.B-树.B ...

  2. C++实现二叉搜索树的查找(附完整源码)

    二叉搜索树的查找 二叉搜索树的查找算法 二叉搜索树的查找算法完整源码 二叉搜索树的查找算法 在二叉搜索树 b 中查找 x 的过程为: 若 b 是空树,则搜索失败,否则: 若 x 等于 b 的根节点的数 ...

  3. [Leetcode][第99题][JAVA][恢复二叉搜索树][中序遍历]

    [问题描述][困难] [解答思路] 1. 显示中序遍历 时间复杂度:O(N) 空间复杂度:O(N) class Solution {public void recoverTree(TreeNode r ...

  4. BST二叉搜索树插入节点建树并找出不平衡节点,networkx,Python

    BST二叉搜索树插入节点建树并找出失衡节点,networkx,Python import randomfrom matplotlib import pyplot as plt import netwo ...

  5. CS61B -BST(二叉搜索树)

    CS61B - BST 什么是BST BST全名Binary search tree(二叉搜索树) BST的基本性质 BST可以是一棵空树 如果它的左树不为空,那么左树中的所有节点的值都小于根节点的值 ...

  6. 74. Leetcode 501. 二叉搜索树中的众数 (二叉搜索树-中序遍历类)

    给你一个含重复值的二叉搜索树(BST)的根节点 root ,找出并返回 BST 中的所有 众数(即,出现频率最高的元素).如果树中有不止一个众数,可以按 任意顺序 返回.假定 BST 满足如下定义:结 ...

  7. 73. Leetcode 230. 二叉搜索树中第K小的元素 (二叉搜索树-中序遍历类)

    给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 个最小元素(从 1 开始计数).示例 1:输入:root = [3,1,4,null,2], k = 1 输出 ...

  8. 72. Leetcode 99. 恢复二叉搜索树 (二叉搜索树-中序遍历类)

    给你二叉搜索树的根节点 root ,该树中的 恰好 两个节点的值被错误地交换.请在不改变其结构的情况下,恢复这棵树 .示例 1:输入:root = [1,3,null,null,2] 输出:[3,1, ...

  9. BST 二叉搜索树 (动态建树与静态建树)

    //判断两棵树是否是同一棵树:先序遍历和中序遍历对应相同或者中序遍历和后序遍历对应相同 //代码思路:两个数组分别存放建好的树的先序遍历以及正序遍历结果,然后对比是否相等 //题目意思 这题是 HDU ...

最新文章

  1. python tkinter库、添加gui界面_使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)...
  2. 注释符、快捷键、变量及其命名规则
  3. 为 UITextField 增加键盘偏移的模板化写法
  4. IDA Pro 数据库文件、函数窗口、结构体窗口
  5. 关于类的非静态函数指针成员变量
  6. 高性能mysql_事务及4种隔离级别
  7. c语言autoi函数如何使用,C++的auto声明、memset函数
  8. 快速排序 java代码_java实现快速排序
  9. 修改Flume-NG的hdfs sink解析时间戳源码大幅提高写入性能
  10. java构造器基本语法_Java语言中的定义变量、构造函数
  11. gh-ost 参数解析,看这一篇就够了!
  12. 优化计算机组策略,windows系统优化--使你的计算机飞起来
  13. html5 合成两张图片,HTML5 Canvas笔记——图像合成
  14. 金融小知识-八行五保-三大综合性金融
  15. libnids中TCP/IP栈实现细节分析——TCP会话重组
  16. iOS-app更新和强制更新
  17. shell编程常用命令总结(二)
  18. 工控主板定制ARM9选择思路
  19. 2022电大国家开放大学网上形考任务-实用卫生统计学非免费(非答案)
  20. 破解手机辐射危害健康的流言

热门文章

  1. 【Java】第11章 JAVA 异常处理 头歌Educoder实训作业(十一)
  2. 怎么把备忘录里的照片存储到相册
  3. 组件之间数据信息传递方法
  4. 微型计算机系统的框架,微型计算机系统原理及应用
  5. gRPC 快速体验 (2):Streaming RPC
  6. 快递单号发出物流信息哪里查,快递单号查询物流方法
  7. Linux服务器安装kangle面板做虚拟主机分销
  8. 多罗信奥侯老师出题:小鱼游泳
  9. 总结Linux基础知识和常用渗透命令!!!
  10. Connectify中文版在Win7下创建免费热点让上网更简单