117得票28回答
如何确定二叉树是否平衡?

离开那些校园已经有一段时间了。我在医院找到了一个IT专家的工作。现在正试图转为做一些实际的编程。我现在正在处理二叉树,我想知道确定树是否平衡的最佳方法是什么。 我考虑的方案如下:public boolean isBalanced(Node root){ if(root==null){...

116得票7回答
Big O(logn) 是以自然对数为底的对数吗?

对于二叉搜索树类型的数据结构,我看到它的大O表示通常写作O(logn)。这里小写的“l”表示对数使用自然对数的底数e吗?抱歉问题比较简单,但我一直很难区分不同的隐含对数。 针对二叉搜索树这种数据结构,其时间复杂度通常用O(logn)来表示。这里的小写字母"l"代表以自然对数为底数e的对数,即...

116得票35回答
在最优方式中查找二叉搜索树中第k小的元素

我需要在二叉搜索树中找到第k个最小的元素,且不能使用任何静态/全局变量。如何高效实现?我目前考虑的解决方案是,最坏情况下通过遍历整棵树进行O(n)操作。但我感觉这里没有充分利用二叉搜索树的性质。请问我的解决方案是否正确,还有更好的方案吗?

87得票13回答
"完全二叉树"、"严格二叉树"和"满二叉树"之间的区别是什么?(注:这是一个提问标题,不需要回答)

我对以下树的术语感到困惑,我一直在研究树,但是我无法区分这些树: a) 完全二叉树 b) 严格二叉树 c) 满二叉树 请帮助我区分这些树。 这些树在数据结构中何时以及何地使用? --- 我对下列树的术语感到困惑,我一直学习树,但我无法区分以下树: a) 完全二叉树 b) 严格二...

87得票11回答
有 'N' 个节点,可能有多少不同的二叉树和二叉搜索树?

对于二叉树:不需要考虑树节点的值,我只关注拥有 'N' 个节点的不同树形结构。 对于二叉搜索树:我们必须考虑树节点的值。

85得票7回答
如何最快地更改std::map内部元素的键

我理解为什么不能只这样做(重新平衡等)的原因:iterator i = m.find(33); if (i != m.end()) i->first = 22; 但目前我所知道的唯一更改键的方法是,将节点从树中全部删除,然后使用不同的键将值重新插入:iterator i = m.f...

81得票6回答
.NET 4.0中是否内置了二叉搜索树?

在.NET 4.0中是否有内置的二叉搜索树,还是需要从头开始构建这个抽象数据类型? 编辑 这是关于二叉搜索树特别地,而不是一般意义上的“树”这种抽象数据类型。

79得票10回答
如何在控制台中“绘制”二叉树?(C语言)

有哪些算法可以在控制台中绘制二叉树?该树是用C实现的。例如,具有数字2 3 4 5 8的BST将在控制台中显示为:

72得票10回答
二叉树 vs. 链表 vs. 哈希表

我正在为我的项目构建一个符号表。我想知道人们对于存储和创建符号表的不同方法的优缺点有什么看法。 我已经做了很多搜索,最常被推荐的是二叉树、链表或哈希表。这些方法各自有什么优劣呢?(使用C++)

70得票30回答
二叉树的后序遍历(不使用递归)

如何不使用递归算法遍历二叉树的后序遍历?