39得票6回答
反转二叉树(从左到右)

我在查看面试问题时,最近遇到了一个问题,问如何反转一般的二叉树,就像将其从右侧翻转到左侧。 例如,如果我们有以下二叉树: 6 / \ 3 4 / \ / \ 7 3 8 1 反转它将创建 6 / \ 4 3 / \ ...

37得票4回答
最大/最小堆树能够包含重复的值吗?

我想知道最大堆或最小堆树是否允许具有重复的值?我尝试了在线资源,但未能找到相关信息。

37得票6回答
二叉树的高效数组存储

我们需要将二叉树的节点写入文件。那么以最节省空间的方式,如何将二叉树写入文件呢?我们可以以数组格式存储它,父节点在位置i,其子节点在2i和2i+1中。但是对于稀疏的二叉树来说,这种方式会浪费很多空间。

36得票4回答
二分查找与二叉搜索树

二叉搜索树相对于使用二分查找的有序数组有何优势?仅通过数学分析,我看不出任何区别,因此我认为在底层实现开销方面必须存在差异。平均情况下运行时间的分析如下所示。 使用二分查找的有序数组 查找:O(log(n)) 插入:O(log(n))(我们运行二分查找以找到要插入元素的位置) 删除:O(...

36得票6回答
一棵只有一个节点的树的高度

根据维基百科,一棵树的高度是从根节点到最深的节点的路径长度。一棵仅有一个节点(根节点)的(有根)树高度为零(或一)。我不明白 - 是零还是一(或两者都是)?

35得票16回答
以特定格式按层次顺序打印二叉树的 BFS(广度优先搜索)结果

首先,这个问题不是这个问题的重复,而是在其基础上进行深入探讨。 以那个问题中的树为例, 1 / \ 2 3 / / \ 4 5 6 你会如何修改你的程序,以便按照以下方式打印输出:1 2 3 4 5 6 与其一般性的1 2 3 4 5 6 我基本...

34得票3回答
在Ocaml中寻找树的深度的尾递归函数

我有一个类型为tree的定义如下:type 'a tree = Leaf of 'a | Node of 'a * 'a tree * 'a tree ;; 我有一个用于查找树深度的函数如下:let rec depth = function | Leaf x -> 0 ...

34得票5回答
莫里斯遍历的时间复杂度为O(n)是如何实现的?

http://geeksforgeeks.org/?p=6358 有人可以解释一下为什么莫里斯遍历的时间复杂度是o(n)吗?在这种遍历中,每当节点有一个左子节点时,它的前驱节点会被复制到其右子节点中。所以最坏情况是需要为每个节点找到前驱节点。 while(pre->right != NU...

34得票4回答
完全二叉树和平衡二叉树的区别

平衡二叉树和完全二叉树有什么区别?是否可以说每个完全二叉树都是平衡树?反过来呢?

33得票7回答
寻找二叉树是否为二叉搜索树

今天我参加了一场面试,被要求编写一个程序,该程序接收一棵二叉树并返回 true(如果它也是二叉搜索树)否则返回 false。 我的解决方法1:执行中序遍历并在 O(n) 时间内存储元素。现在扫描元素的数组/列表,并检查第i个元素是否大于(i+1)个元素。如果遇到这种情况,请返回false并跳...