Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Definition of Full Binary Tree

I came upon two resources and they appear to say the basic definition in two ways.

Source 1 (and one of my professor) says:

All leaves are at the same level and all non-leaf nodes have two child nodes.

Source 2 (and 95% of internet) says:

A full binary tree (sometimes referred to as a proper or plane binary tree) is a tree in which every node in the tree has either 0 or 2 children.

Now following Source 2, enter image description here

becomes a binary tree but not according to Source 1 as the leaves are not in the same level.

So typically they consider trees like,

enter image description here

as Full Binary Tree.

I may sound stupid but I'm confused what to believe. Any help is appreciated. Thanks in advance.

like image 451
lu5er Avatar asked Aug 02 '17 00:08

lu5er


People also ask

What is full and complete binary tree?

A full binary tree (sometimes proper binary tree or 2-tree) is a tree in which every node other than the leaves has two children. A complete binary tree is a binary tree in which every level, except possibly the last, is completely filled, and all nodes are as far left as possible.

What is a full node binary tree?

Given a binary tree, print all nodes will are full nodes. Full Nodes are nodes which has both left and right children as non-empty.

What is the definition of a complete tree?

(data structure) Definition: A tree in which every level, except possibly the deepest, is entirely filled. At depth n, the height of the tree, all nodes are as far left as possible.

What is complete binary tree explain with example?

The following are common types of Binary Trees. Full Binary Tree: A Binary Tree is a full binary tree if every node has 0 or 2 children. The following are the examples of a full binary tree. We can also say a full binary tree is a binary tree in which all nodes except leaf nodes have two children.


2 Answers

There are three main concepts: (1) Full binary tree (2) Complete binary tree and (3) Perfect binary tree. As you said, full binary tree is a tree in which all nodes have either degree 2 or 0. However, a complete binary tree is one in which all levels except possibly the last level are filled from left to right. Finally, a perfect binary tree is a full binary tree in which all leaves are at the same depth. For more see the wikipedia page

My intuition for the term complete here is that given a fixed number of nodes, a complete binary tree is made by completing each level from left to right except possibly the last one, as the number of nodes may not always be of the form 2^n - 1.

like image 95
A. Mashreghi Avatar answered Oct 06 '22 00:10

A. Mashreghi


I think the issue is, what's the purpose of making the definition? Usually, the reason for defining full binary tree in the way that appears in Wikipedia is to be able to introduce and prove the Full Binary Tree Theorem:

The total number of nodes N in a full binary tree with I internal nodes is 2 I + 1.

(There are several equivalent formulations of this theorem in terms of the number of interior nodes, number of leaf nodes, and total number of nodes.) The proof of this theorem does not require that all the leaf nodes be at the same level.

What one of your professors is describing is something I would call a perfect binary tree, or, equivalently, a full, complete binary tree.

like image 40
Ted Hopp Avatar answered Oct 06 '22 01:10

Ted Hopp