# Full Binary Tree

Various data structures in computer science aid in the organization of data in various forms. Trees are popular abstract data structures that simulate a hierarchical tree structure. A tree typically has a root value and subtrees formed by child nodes from parent nodes. Non-linear data structures are trees.

The number of child nodes that a general tree data structure can hold is not limited. This, however, is not the case with a binary tree. This article will teach you about a specific tree data structure - binary trees - and the different types of binary trees.

## The Binary Tree Data Structure: What Exactly Is It?

A binary tree is a non-linear data structure of the tree type, with a maximum of two children for each parent. In addition to the data element, every node in a binary tree also carries a left and right reference. The root node is the node that sits at the very top of a tree's structure. The parent nodes are the nodes that house other sub-nodes. The two children of a parent node are the left and right children.

Hashing, data compression, network traffic routing, setting up binary heaps, and building binary search trees are just a few of the uses for a binary tree.

Terminologies related to Binary Trees and Binary Tree Types Node: It represents the end of a branch in a tree.

The root is the topmost node of a tree.

Each node (aside from the root) in a tree that has at least one sub-node is referred to as a parent.

When going away from the root, a node that comes directly from a parent node is referred to as a child node. The external nodes are those. They are the nodes without any offspring. As the name suggests, internal nodes are those that have at least one child. Depth of Tree: the quantity of edges spanning the tree's node and root. The number of edges from the node to the deepest leaf determines the height of a tree. The tree height also takes into account the root height.

## Binary Tree Types include the following:

• Full Binary Tree.
• Complete Binary Tree.
• Perfect Binary Tree.
• Balanced Binary Tree.
• Degenerate Binary Tree.

There are several types of binary trees, and each has its own set of characteristics. Each binary tree type is described in detail below:

Here we will discuss about Full Binary Tree in detail:

### Full Binary Tree:

A full binary tree is a particular kind of binary tree in which every parent node and internal node either has two children or none at all.

It is also referred to as a proper binary tree.

A unique form of binary tree called a full binary tree includes either two children or none at all for each parent node and internal node. It is also referred to as a proper binary tree.

If a binary tree T is a nonempty tree, then if L were a leaf node in the tree and I were its internal nodes, then L = I + 1 would be the total number of leaf nodes.

If T has I internal nodes and N is the total number of nodes, then the total number of nodes would be equal to N = 2I + 1

If T has "N" total nodes and "I" represents the number of internal nodes, then "I" would represent the number of internal nodes (N-1)/2

If "T" contains "N" total nodes and "L" is the number of leaf nodes, then L = (N+1)/2 would be the number of leaf nodes.

If "T" comprises "L" number of leaf nodes and "I" number of internal nodes, then the number of internal nodes would be equal to I = L - 1

Overview:

Let i represent the quantity of internal nodes.

Then,

• (i + 1) leaves are present.
• There are a total of (2i + 1) nodes.
• The number of internal nodes is (n - 1) / 2.
• There are (n + 1) / 2 leaves.
• There are a total of n nodes (2l - 1).
• There are internal nodes in the amount (l - 1).
• The most leaves possible are (2λ - 1).

## Full Binary Tree Vs Complete Binary Tree

1. A node in the last level of a complete binary tree can only have one child.

A full binary tree cannot contain a single child at each node.

2. In a full binary tree, the node should be filled from left to right.

A full binary tree has nodes that can be filled in any order.

3. Heap-based data structures often used in complete binary trees.

There are no applications for full binary trees, often called proper binary trees.

4. An almost complete binary tree is another term for a complete binary tree.

A full binary tree is often referred to as a 2-tree or a proper binary tree.

5. The full leaves node is required to have a complete binary tree.

We can observe the following while contrasting the two varieties of binary trees: Not all complete binary trees are full binary trees. The first illustration demonstrates this. The lowest level does not have to be filled from left to right without leaving gaps, and leaves can occur in a full binary tree at any level, not just the lowest two. These are the two reasons for this. Not all full binary trees are complete binary trees. The second instance serves as an example of this. There is a node with only one child, which is the cause. The rule for entire binary trees will, however, only ever be broken by one node at the most in a complete binary tree.

Therefore, full, or nearly full binary trees are what complete binary trees are in that sense. The balance of binary trees becomes crucial when they are used as search trees because the depth of a node dictates how many steps are required to find the related value. The entire binary tree is preferred since it is more balanced from that point of view. However, it could be laborious for sets of values that vary frequently because it might need a lot of restructuring when values are added or removed. As a result, many widely used data structures for searching in dynamic collections of values, such red-black trees, are actually full binary trees with additional restrictions to guarantee some degree of balanced-ness.

### C Program to create a list of all possible full binary trees with n nodes:

Output:

```n = 7 [[0,0,0,null,null,0,0,null,null,0,0],[0,0,0,null,null,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,null,null,null,null,0,0],[0,0,0,0,0,null,null,0,0]]
```

### Feedback   