二叉树/二进制搜索树是否只有父节点和左节点或右节点之一?
或者强制性是否同时拥有左侧和右侧节点?
答案 0 :(得分:0)
二进制意味着两个。二叉树有两个子指针,不一定是对任何东西的引用。父引用不是必需的 - 这取决于实现。
如果节点必须具有两个子元素,那么树将是无限的并且叶子将不存在。
因此,节点的选项是
当然,还有其他方法可以考虑“树”。例如,取binary heap array implementation。
答案 1 :(得分:0)
实际上,除了一条规则之外, nothing 是强制性的(即任何二叉树节点可以拥有的最大子项数 2 )。
<强>技术上:强>
当我们定义NULL
时,即使TreeNode *root = NULL
被视为树节点。
虽然它没有实际意义,但我们在调用插入,删除和显示方法时将它们作为参数传递。
所以,作为一个编码器,如果在处理二叉树之前没有检查root
的健全性,假设二叉树总是至少包含一个父节点可以证明致命 。
答案 2 :(得分:0)
这不是强制性的,您可以根据需要创建其他类型的链接。像这样定义 up 和 down 指针。
对于节点 x ,将指针 u(x)定义为:
对于节点 x ,将指针 d(x)定义为:
这就是所谓的树的环形表示。
答案 3 :(得分:0)
二叉搜索树也是具有附加属性的二叉树。任何二叉树节点都可以具有0或1或2个子节点。所以要回答你的问题,可以只有左或右节点