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

87

我对以下树的术语感到困惑,我一直在研究树,但是我无法区分这些树:

a) 完全二叉树

b) 严格二叉树

c) 满二叉树

请帮助我区分这些树。 这些树在数据结构中何时以及何地使用?

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

2
http://en.wikipedia.org/wiki/Binary_tree#Types_of_binary_trees 这个链接没有回答你的问题吗? - rodion
8
不是的,这些中有很多混淆。 - kTiwari
1
严格二叉树:每个节点最多只能有两个子节点或者没有子节点。 - vikkyhacks
这是关于完全二叉树和满二叉树的一个很好的例子:https://web.cecs.pdx.edu/~sheard/course/Cs163/Doc/FullvsComplete.html - theshubhagrwl
13个回答

0

满二叉树是指每个节点都有0或2个子节点。在满二叉树中,叶子节点的数量等于内部节点的数量加1。 L=l+1


0

简单来说:

完全二叉树:- 高度为h的二叉树,节点数最大。即,n = 2 ^(h +1)-1;
例如:如果任何树的高度为2,则节点应该是7,那么它就是一棵满二叉树


完美二叉树:- 每一层除了最后一层都被完全填充,且所有节点均靠左。
或者
可以表示一个没有空格(或null值)的数组的任何BT。
或者
具有h的完整BT将是完整BT高度达到h-1和在最后一层中,元素将从左到右填充而不跳过。
enter image description here

严格二叉树:- 度为0或度为2的二叉树。
enter image description here




图片来源:Abdul Bari Lectures。


0
完全二叉树: 所有层都是完全填充的,除了最低层,而且所有叶子节点必须有左孩子。 严格二叉树: 在这棵树中,每个非叶子节点都没有孩子,即既没有左孩子也没有右孩子。 满二叉树: 每个节点要么没有孩子,要么有两个孩子(从不只有一个孩子)。

在这棵树中,每个非叶节点都没有子节点,即既没有左子节点也没有右子节点。非叶节点必须至少有一个子节点,否则它就是叶节点。 - nkrivenko

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接