二进制搜索树中最常见的元素

Jay*_*ram 3 algorithm

我们怎样才能找到BST中最常出现的元素?我想过用hash-map实现它.有什么简单的方法吗?

das*_*ght 7

此问题等同于在排序数组中查找最常见的元素 - 应用相同的算法:

  • 在零处启动计数器
  • 当前元素等于前一个元素时递增计数器
  • 当您找到不同的元素时,将计数器与当前最佳运行进行比较; 必要时更换
  • 继续下一个元素

唯一的区别是,不是使用循环遍历数组,而是使用递归函数进行树遍历.在这两种情况下,算法在树中的元素数量上是线性的.如果树是平衡的,则算法需要O(LogN)调用堆栈上的空间.

  • 因为它是BST.它不能被认为是平衡的. (3认同)