二叉树/二叉搜索树

时间:2016-09-08 16:26:44

标签: data-structures tree binary-search-tree

二叉树/二进制搜索树是否只有父节点和左节点或右节点之一?
或者强制性是否同时拥有左侧和右侧节点?

4 个答案:

答案 0 :(得分:0)

二进制意味着两个。二叉树有两个子指针,不一定是对任何东西的引用。父引用不是必需的 - 这取决于实现。

如果节点必须具有两个子元素,那么树将是无限的并且叶子将不存在。

因此,节点的选项是

  • leaf
  • 仅限左/右孩子
  • 两个孩子

当然,还有其他方法可以考虑“树”。例如,取binary heap array implementation

enter image description here

答案 1 :(得分:0)

实际上,除了一条规则之外, nothing 是强制性的(即任何二叉树节点可以拥有的最大子项数 2 )。

<强>技术上:

当我们定义NULL时,即使TreeNode *root = NULL被视为树节点。 虽然它没有实际意义,但我们在调用插入,删除和显示方法时将它们作为参数传递。

所以,作为一个编码器,如果在处理二叉树之前没有检查root的健全性,假设二叉树总是至少包含一个父节点可以证明致命

答案 2 :(得分:0)

这不是强制性的,您可以根据需要创建其他类型的链接。像这样定义 up down 指针。

对于节点 x ,将指针 u(x)定义为:

  • 如果 x 是正确的孩子,那么 u(x) x
  • 的父母
  • 如果 x 是子或root,则 u(x) x
  • 右路径上的最低节点>

对于节点 x ,将指针 d(x)定义为:

  • 如果 x 左子树不存在,那么 d(x)= x
  • 如果存在子树,则 d(x)指向 x 左边子树的最右边节点

这就是所谓的树的环形表示。

答案 3 :(得分:0)

二叉搜索树也是具有附加属性的二叉树。任何二叉树节点都可以具有0或1或2个子节点。所以要回答你的问题,可以只有左或右节点