algorithm - 我们可以将链表视为倾斜的树吗

标签 algorithm data-structures linked-list tree language-agnostic

考虑到一棵 Skewed 树,它的所有节点都只有一个特定的方向(左或右)。我们可以说一个有 n 个节点的链表也是一棵高度为 n 的 Skewed 树吗?

最佳答案

是的。列表是退化树。如果需要,您可以将其称为“最大不平衡树”。

事实上,这正是有人说您需要平衡二叉搜索树以获得 O(log n) 查找性能时的意思,因为如果您的树变得不平衡,它就会退化为列表和查找性能变为 O(n)。

有时从另一个方向思考也很有用:大多数人完全可以理解持久列表的工作原理,但很多人很难理解持久树的工作原理。但问题是:它实际上完全像持久列表一样工作,并且通常很容易理解持久树的工作原理,如果您从持久列表开始,然后将该列表重新解释为退化树。

关于algorithm - 我们可以将链表视为倾斜的树吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43445155/

相关文章:

c++ - 算法:仅使用比较对 0/1 的序列进行排序

python - Python 似乎不赞成从不同目录导入的论点是什么?

c - 执行后c中出现段错误11

c - 链表的二维数组

java - Java中如何将数组转换为链表

mysql - SNS网站私信检测算法

performance - 寻求最佳算法(渐近地)并忽略其他细节

data-structures - 在未知(树状)数据结构中查找一个节点范围内的所有节点

java - 使用java删除链表中的节点

algorithm - 最大化矩阵中 "non-overlapping"数字的总和