Difference between “Complete binary tree”, “strict binary tree”,“full binary Tree”?












60















I am confused about the terminology of the below trees, I have been studying the Tree, and I am unable to distinguish between these trees:



a) Complete Binary Tree



b) Strict Binary Tree



c) Full Binary Tree



Please help me to differentiate among these trees.
When and where these trees are used in Data Structure?










share|improve this question




















  • 1





    Does en.wikipedia.org/wiki/Binary_tree#Types_of_binary_trees not answer your question?

    – rodion
    Sep 10 '12 at 21:26






  • 3





    no its not ,a lot of confusion among these

    – kTiwari
    Sep 10 '12 at 21:28











  • Strict Binary Tree: Every node can have 2 child or no nodes at all

    – vikkyhacks
    Feb 18 '14 at 17:44
















60















I am confused about the terminology of the below trees, I have been studying the Tree, and I am unable to distinguish between these trees:



a) Complete Binary Tree



b) Strict Binary Tree



c) Full Binary Tree



Please help me to differentiate among these trees.
When and where these trees are used in Data Structure?










share|improve this question




















  • 1





    Does en.wikipedia.org/wiki/Binary_tree#Types_of_binary_trees not answer your question?

    – rodion
    Sep 10 '12 at 21:26






  • 3





    no its not ,a lot of confusion among these

    – kTiwari
    Sep 10 '12 at 21:28











  • Strict Binary Tree: Every node can have 2 child or no nodes at all

    – vikkyhacks
    Feb 18 '14 at 17:44














60












60








60


41






I am confused about the terminology of the below trees, I have been studying the Tree, and I am unable to distinguish between these trees:



a) Complete Binary Tree



b) Strict Binary Tree



c) Full Binary Tree



Please help me to differentiate among these trees.
When and where these trees are used in Data Structure?










share|improve this question
















I am confused about the terminology of the below trees, I have been studying the Tree, and I am unable to distinguish between these trees:



a) Complete Binary Tree



b) Strict Binary Tree



c) Full Binary Tree



Please help me to differentiate among these trees.
When and where these trees are used in Data Structure?







data-structures tree binary-tree






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited May 4 '17 at 4:58









Ajay

13.3k83978




13.3k83978










asked Sep 10 '12 at 21:20









kTiwarikTiwari

7441921




7441921








  • 1





    Does en.wikipedia.org/wiki/Binary_tree#Types_of_binary_trees not answer your question?

    – rodion
    Sep 10 '12 at 21:26






  • 3





    no its not ,a lot of confusion among these

    – kTiwari
    Sep 10 '12 at 21:28











  • Strict Binary Tree: Every node can have 2 child or no nodes at all

    – vikkyhacks
    Feb 18 '14 at 17:44














  • 1





    Does en.wikipedia.org/wiki/Binary_tree#Types_of_binary_trees not answer your question?

    – rodion
    Sep 10 '12 at 21:26






  • 3





    no its not ,a lot of confusion among these

    – kTiwari
    Sep 10 '12 at 21:28











  • Strict Binary Tree: Every node can have 2 child or no nodes at all

    – vikkyhacks
    Feb 18 '14 at 17:44








1




1





Does en.wikipedia.org/wiki/Binary_tree#Types_of_binary_trees not answer your question?

– rodion
Sep 10 '12 at 21:26





Does en.wikipedia.org/wiki/Binary_tree#Types_of_binary_trees not answer your question?

– rodion
Sep 10 '12 at 21:26




3




3





no its not ,a lot of confusion among these

– kTiwari
Sep 10 '12 at 21:28





no its not ,a lot of confusion among these

– kTiwari
Sep 10 '12 at 21:28













Strict Binary Tree: Every node can have 2 child or no nodes at all

– vikkyhacks
Feb 18 '14 at 17:44





Strict Binary Tree: Every node can have 2 child or no nodes at all

– vikkyhacks
Feb 18 '14 at 17:44












10 Answers
10






active

oldest

votes


















56














Wikipedia yielded



A full binary tree (sometimes proper binary tree or 2-tree or strictly binary tree) is a tree in which every node other than the leaves has two children.



So you have no nodes with only 1 child. Appears to be the same as strict binary tree.



Here is an image of a full/strict binary tree, from google:



enter image description here



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.



It seems to mean a balanced tree.



Here is an image of a complete binary tree, from google, full tree part of image is bonus.



enter image description here






share|improve this answer





















  • 26





    Your complete tree example also fulfills the criteria of being a full binary tree so the difference is apparently blurred , in my opinion you might wanna give an example of a complete tree which is not a full binary tree and vice-versa , that would make the answer complete :)

    – 0decimal0
    Aug 30 '14 at 17:30











  • There is a difference between full binary tree and strictly binary tree. Refer to the answer: stackoverflow.com/a/32064101/5237727

    – Saurabh Bhatia
    Mar 29 '17 at 4:39








  • 1





    Also, while all complete trees are balanced trees, all balanced trees are not necessarily complete trees.

    – sfarbota
    Sep 6 '17 at 2:32











  • What does it mean that every level is completely filled?

    – lolololol ol
    Dec 26 '17 at 3:22






  • 1





    @lololololol it means that all of the nodes that can possibly be in that level are present.

    – Sam I am
    Dec 26 '17 at 4:52





















71














Perfect:



       x
/
/
x x
/ /
x x x x
/ / / /
x x x x x x x x


Complete:



       x
/
/
x x
/ /
x x x x
/ /
x x x


Strict:



       x
/
/
x x
/
x x
/
x x





share|improve this answer





















  • 3





    By perfect binary tree you mean full binary tree referred by the OP?

    – RBT
    May 4 '17 at 2:12











  • Perfect binary tree is both Strict/Full binary tree as well as Complete binary tree but vice versa may not be always true.

    – neo
    Nov 7 '18 at 5:54



















41














There is a difference between a STRICT and FULL BINARY TREE.



1) FULL BINARY TREE: A binary tree of height h that contains exactly (2^h)-1 elements is called a full binary tree. (Ref: Pg 427, Data Structures, Algorithms and Applications in C++ [University Press], Second Edition by Sartaj Sahni).



or in other words



In a FULL BINARY TREE each node has exactly 0 or 2 children and all leaf nodes are on the same level.



For Example: The following is a FULL BINARY TREE:



          18
/
15 30
/ /
40 50 100 40


2) STRICT BINARY TREE: Each node has exactly 0 or 2 children.



For example: The following is a STRICT BINARY TREE:



         18
/
15 30
/
40 50


I think there's no confusion in the definition of a Complete Binary Tree, still for the completeness of the post I would like to tell what a Complete Binary Tree is.



3) COMPLETE BINARY TREE: A Binary Tree is complete Binary Tree if all levels are completely filled except possibly the last level and the last level has all keys as left as possible.



For Example: The following is a COMPLETE BINARY TREE:



           18
/
15 30
/ /
40 50 100 40
/ /
8 7 9


Note: The following is also a Complete Binary Tree:



         18
/
15 30
/ /
40 50 100 40





share|improve this answer































    9














    Disclaimer- The main source of some definitions are wikipedia, any suggestion to improve my answer is welcome.



    Although this post has an accepted answer and is a good one I was still in confusion and would like to add some more clarification regarding the difference between these terms.



    (1)FULL BINARY TREE- A full binary tree is a binary tree in which every node other than the leaves has two children.This is also called strictly binary tree.



    enter image description hereenter image description here



    The above two are the examples of full or strictly binary tree.



    (2)COMPLETE BINARY TREE- Now, the definition of complete binary tree is quite ambiguous, it states :- 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. It can have between 1 and 2h nodes, as far left as possible, at the last level h



    Notice the lines in italic.



    The ambiguity lies in the lines in italics , "except possibly the last" which means that the last level may also be completely filled , i.e this exception need not always be satisfied. If the exception doesn't hold then it is exactly like the second image I posted, which can also be called as perfect binary tree. So, a perfect binary tree is also full and complete but not vice-versa which will be clear by one more definition I need to state:



    ALMOST COMPLETE BINARY TREE- When the exception in the definition of complete binary tree holds then it is called almost complete binary tree or nearly complete binary tree . It is just a type of complete binary tree itself , but a separate definition is necessary to make it more unambiguous.



    So an almost complete binary tree will look like this, you can see in the image the nodes are as far left as possible so it is more like a subset of complete binary tree , to say more rigorously every almost complete binary tree is a complete binary tree but not vice versa . :



    enter image description here






    share|improve this answer































      5














      Concluding from above answers, Here is the exact difference between full/strictly, complete and perfect binary trees




      1. Full/Strictly binary tree :- Every node except the leaf nodes have two children


      2. Complete binary tree :- Every level except the last level is completely filled and all the nodes are left justified.


      3. Perfect binary tree :- Every node except the leaf nodes have two children and every level (last level too) is completely filled.







      share|improve this answer































        1














        Consider a binary tree whose nodes are drawn in a tree fashion. Now start numbering the nodes from top to bottom and left to right. A complete tree has these properties:



        If n has children then all nodes numbered less than n have two children.



        If n has one child it must be the left child and all nodes less than n have two children. In addition no node numbered greater than n has children.



        If n has no children then no node numbered greater than n has children.



        A complete binary tree can be used to represent a heap. It can be easily represented in contiguous memory with no gaps (i.e. all array elements are used save for any space that may exist at the end).






        share|improve this answer































          1














          Full binary tree are a complete binary tree but reverse is not possible, and if the depth of the binary is n the no. of nodes in the full binary tree is ( 2^n-1 ). It is not necessary in the binary tree that it have two child but in the full binary it every node have no or two child.






          share|improve this answer


























          • You cannot strictly say that "reverse is not possible " in fact your this very assumption is defied in the example of complete tree in the accepted answer ... you should rather say that may or may not be possible

            – 0decimal0
            Aug 30 '14 at 17:34













          • if the depth of the binary is n the no. of nodes in the full binary tree is ( 2^n-1 ): but a full binary tree definition is a tree where every node is either a leaf or has two children. So the max possible no. of children is ( 2^n-1 ) but it may be less than that.

            – mrida
            Sep 27 '14 at 10:49



















          1














          To start with basics, it is very important to understand binary tree itself to understand different types of it.



          A tree is a binary tree if and only if :-



          – It has a root node , which may not have any child nodes (0 childnodes, NULL tree)



          –Root node may have 1 or 2 child nodes . Each such node forms abinary tree itself 



          –Number of child nodes can be 0 ,1 ,2.......not more than 2



          –There is a unique path from the root to every other node



          Example :



                  X
          /
          X X
          /
          X X


          Coming to your inquired terminologies:



          A binary tree is a complete binary tree ( of height h , we take root node as 0 ) if and only if :-



          Level 0 to h-1 represent a full binary tree of height h-1



          – One or more nodes in level h-1 may have 0, or 1 child nodes



          If j,k are nodes in level h-1, then j has more child nodes than k if and only if j is to the left of k , i.e. the last level (h) can be missing leaf nodes, however the ones present must be shifted to the left



          Example :



                                    X
          /
          /
          /
          X X
          / /
          X X X X
          / / / /
          X X X X X X X X


          A binary tree is a strictly binary tree if and only if :-



          Each node has exactly two child nodes or no nodes



          Example :



                   X
          /
          X X
          /
          X X
          / /
          X X X X


          A binary tree is a full binary tree if and only if :-



          Each non leaf node has exactly two child nodes



          All leaf nodes are at the same level



          Example :



                                    X
          /
          /
          /
          X X
          / /
          X X X X
          / / / /
          X X X X X X X X
          / / / / / / / /
          X X X X X X X X X X X X X X X X


          You should also know what a perfect binary tree is?



          A binary tree is a perfect binary tree if and only if :-



          – is a full binary tree



          – All leaf nodes are at the same level



          Example :



                                    X
          /
          /
          /
          X X
          / /
          X X X X
          / / / /
          X X X X X X X X
          / / / / / / / /
          X X X X X X X X X X X X X X X X


          Well, I am sorry I cannot post images as I do not have 10 reputation.
          Hope this helps you and others!






          share|improve this answer

































            1














            In my limited experience with binary tree, I think:





            1. Strictly Binary Tree:Every node except the leaf nodes have two children or only have a root node.


            2. Full Binary Tree: A binary tree of H strictly(or exactly) containing 2^H -1 nodes , it's clear that which every level has the most nodes.


            3. Complete Binary Tree: It is a binary tree in which every level, except possibly the last, is completely filled, and all nodes are as far left as possible.






            share|improve this answer
























            • You're definition for a full binary tree is incorrect, that is the definition of a perfect binary tree. A full binary tree is synonymous with a strictly binary tree. (source: see strictly binary tree: faculty.cs.niu.edu/~mcmahon/CS241/Notes/bintree.html) (source: see perfect binary tree: slideshare.net/ajaykumarc137151/…)

              – Keego
              Aug 12 '17 at 15:50











            • oh, my god, I am confused just now,I will make sure of this. Many thanks.

              – BertKing
              Aug 15 '17 at 3:32











            • No problem :) See the answer by @Lotus below, he nailed it. I just recommended edits for your answer to reflect this.

              – Keego
              Aug 16 '17 at 18:27



















            0














            Let us consider a binary tree of height 'h'. A binary tree is called a complete binary tree if all the leaves are present at height 'h' or 'h-1' without any missing numbers in the sequence.



                               1
            /
            2 3
            /
            4 5


            It is a complete binary tree.



                               1
            /
            2 3
            / /
            4 6


            It is not a complete binary tree as the node of number 5 is missing in the sequence






            share|improve this answer

























              Your Answer






              StackExchange.ifUsing("editor", function () {
              StackExchange.using("externalEditor", function () {
              StackExchange.using("snippets", function () {
              StackExchange.snippets.init();
              });
              });
              }, "code-snippets");

              StackExchange.ready(function() {
              var channelOptions = {
              tags: "".split(" "),
              id: "1"
              };
              initTagRenderer("".split(" "), "".split(" "), channelOptions);

              StackExchange.using("externalEditor", function() {
              // Have to fire editor after snippets, if snippets enabled
              if (StackExchange.settings.snippets.snippetsEnabled) {
              StackExchange.using("snippets", function() {
              createEditor();
              });
              }
              else {
              createEditor();
              }
              });

              function createEditor() {
              StackExchange.prepareEditor({
              heartbeatType: 'answer',
              autoActivateHeartbeat: false,
              convertImagesToLinks: true,
              noModals: true,
              showLowRepImageUploadWarning: true,
              reputationToPostImages: 10,
              bindNavPrevention: true,
              postfix: "",
              imageUploader: {
              brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
              contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
              allowUrls: true
              },
              onDemand: true,
              discardSelector: ".discard-answer"
              ,immediatelyShowMarkdownHelp:true
              });


              }
              });














              draft saved

              draft discarded


















              StackExchange.ready(
              function () {
              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f12359660%2fdifference-between-complete-binary-tree-strict-binary-tree-full-binary-tre%23new-answer', 'question_page');
              }
              );

              Post as a guest















              Required, but never shown

























              10 Answers
              10






              active

              oldest

              votes








              10 Answers
              10






              active

              oldest

              votes









              active

              oldest

              votes






              active

              oldest

              votes









              56














              Wikipedia yielded



              A full binary tree (sometimes proper binary tree or 2-tree or strictly binary tree) is a tree in which every node other than the leaves has two children.



              So you have no nodes with only 1 child. Appears to be the same as strict binary tree.



              Here is an image of a full/strict binary tree, from google:



              enter image description here



              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.



              It seems to mean a balanced tree.



              Here is an image of a complete binary tree, from google, full tree part of image is bonus.



              enter image description here






              share|improve this answer





















              • 26





                Your complete tree example also fulfills the criteria of being a full binary tree so the difference is apparently blurred , in my opinion you might wanna give an example of a complete tree which is not a full binary tree and vice-versa , that would make the answer complete :)

                – 0decimal0
                Aug 30 '14 at 17:30











              • There is a difference between full binary tree and strictly binary tree. Refer to the answer: stackoverflow.com/a/32064101/5237727

                – Saurabh Bhatia
                Mar 29 '17 at 4:39








              • 1





                Also, while all complete trees are balanced trees, all balanced trees are not necessarily complete trees.

                – sfarbota
                Sep 6 '17 at 2:32











              • What does it mean that every level is completely filled?

                – lolololol ol
                Dec 26 '17 at 3:22






              • 1





                @lololololol it means that all of the nodes that can possibly be in that level are present.

                – Sam I am
                Dec 26 '17 at 4:52


















              56














              Wikipedia yielded



              A full binary tree (sometimes proper binary tree or 2-tree or strictly binary tree) is a tree in which every node other than the leaves has two children.



              So you have no nodes with only 1 child. Appears to be the same as strict binary tree.



              Here is an image of a full/strict binary tree, from google:



              enter image description here



              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.



              It seems to mean a balanced tree.



              Here is an image of a complete binary tree, from google, full tree part of image is bonus.



              enter image description here






              share|improve this answer





















              • 26





                Your complete tree example also fulfills the criteria of being a full binary tree so the difference is apparently blurred , in my opinion you might wanna give an example of a complete tree which is not a full binary tree and vice-versa , that would make the answer complete :)

                – 0decimal0
                Aug 30 '14 at 17:30











              • There is a difference between full binary tree and strictly binary tree. Refer to the answer: stackoverflow.com/a/32064101/5237727

                – Saurabh Bhatia
                Mar 29 '17 at 4:39








              • 1





                Also, while all complete trees are balanced trees, all balanced trees are not necessarily complete trees.

                – sfarbota
                Sep 6 '17 at 2:32











              • What does it mean that every level is completely filled?

                – lolololol ol
                Dec 26 '17 at 3:22






              • 1





                @lololololol it means that all of the nodes that can possibly be in that level are present.

                – Sam I am
                Dec 26 '17 at 4:52
















              56












              56








              56







              Wikipedia yielded



              A full binary tree (sometimes proper binary tree or 2-tree or strictly binary tree) is a tree in which every node other than the leaves has two children.



              So you have no nodes with only 1 child. Appears to be the same as strict binary tree.



              Here is an image of a full/strict binary tree, from google:



              enter image description here



              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.



              It seems to mean a balanced tree.



              Here is an image of a complete binary tree, from google, full tree part of image is bonus.



              enter image description here






              share|improve this answer















              Wikipedia yielded



              A full binary tree (sometimes proper binary tree or 2-tree or strictly binary tree) is a tree in which every node other than the leaves has two children.



              So you have no nodes with only 1 child. Appears to be the same as strict binary tree.



              Here is an image of a full/strict binary tree, from google:



              enter image description here



              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.



              It seems to mean a balanced tree.



              Here is an image of a complete binary tree, from google, full tree part of image is bonus.



              enter image description here







              share|improve this answer














              share|improve this answer



              share|improve this answer








              edited Oct 16 '16 at 17:12









              Mark Lalor

              3,8811456100




              3,8811456100










              answered Sep 10 '12 at 21:28









              Sam I amSam I am

              26.7k105891




              26.7k105891








              • 26





                Your complete tree example also fulfills the criteria of being a full binary tree so the difference is apparently blurred , in my opinion you might wanna give an example of a complete tree which is not a full binary tree and vice-versa , that would make the answer complete :)

                – 0decimal0
                Aug 30 '14 at 17:30











              • There is a difference between full binary tree and strictly binary tree. Refer to the answer: stackoverflow.com/a/32064101/5237727

                – Saurabh Bhatia
                Mar 29 '17 at 4:39








              • 1





                Also, while all complete trees are balanced trees, all balanced trees are not necessarily complete trees.

                – sfarbota
                Sep 6 '17 at 2:32











              • What does it mean that every level is completely filled?

                – lolololol ol
                Dec 26 '17 at 3:22






              • 1





                @lololololol it means that all of the nodes that can possibly be in that level are present.

                – Sam I am
                Dec 26 '17 at 4:52
















              • 26





                Your complete tree example also fulfills the criteria of being a full binary tree so the difference is apparently blurred , in my opinion you might wanna give an example of a complete tree which is not a full binary tree and vice-versa , that would make the answer complete :)

                – 0decimal0
                Aug 30 '14 at 17:30











              • There is a difference between full binary tree and strictly binary tree. Refer to the answer: stackoverflow.com/a/32064101/5237727

                – Saurabh Bhatia
                Mar 29 '17 at 4:39








              • 1





                Also, while all complete trees are balanced trees, all balanced trees are not necessarily complete trees.

                – sfarbota
                Sep 6 '17 at 2:32











              • What does it mean that every level is completely filled?

                – lolololol ol
                Dec 26 '17 at 3:22






              • 1





                @lololololol it means that all of the nodes that can possibly be in that level are present.

                – Sam I am
                Dec 26 '17 at 4:52










              26




              26





              Your complete tree example also fulfills the criteria of being a full binary tree so the difference is apparently blurred , in my opinion you might wanna give an example of a complete tree which is not a full binary tree and vice-versa , that would make the answer complete :)

              – 0decimal0
              Aug 30 '14 at 17:30





              Your complete tree example also fulfills the criteria of being a full binary tree so the difference is apparently blurred , in my opinion you might wanna give an example of a complete tree which is not a full binary tree and vice-versa , that would make the answer complete :)

              – 0decimal0
              Aug 30 '14 at 17:30













              There is a difference between full binary tree and strictly binary tree. Refer to the answer: stackoverflow.com/a/32064101/5237727

              – Saurabh Bhatia
              Mar 29 '17 at 4:39







              There is a difference between full binary tree and strictly binary tree. Refer to the answer: stackoverflow.com/a/32064101/5237727

              – Saurabh Bhatia
              Mar 29 '17 at 4:39






              1




              1





              Also, while all complete trees are balanced trees, all balanced trees are not necessarily complete trees.

              – sfarbota
              Sep 6 '17 at 2:32





              Also, while all complete trees are balanced trees, all balanced trees are not necessarily complete trees.

              – sfarbota
              Sep 6 '17 at 2:32













              What does it mean that every level is completely filled?

              – lolololol ol
              Dec 26 '17 at 3:22





              What does it mean that every level is completely filled?

              – lolololol ol
              Dec 26 '17 at 3:22




              1




              1





              @lololololol it means that all of the nodes that can possibly be in that level are present.

              – Sam I am
              Dec 26 '17 at 4:52







              @lololololol it means that all of the nodes that can possibly be in that level are present.

              – Sam I am
              Dec 26 '17 at 4:52















              71














              Perfect:



                     x
              /
              /
              x x
              / /
              x x x x
              / / / /
              x x x x x x x x


              Complete:



                     x
              /
              /
              x x
              / /
              x x x x
              / /
              x x x


              Strict:



                     x
              /
              /
              x x
              /
              x x
              /
              x x





              share|improve this answer





















              • 3





                By perfect binary tree you mean full binary tree referred by the OP?

                – RBT
                May 4 '17 at 2:12











              • Perfect binary tree is both Strict/Full binary tree as well as Complete binary tree but vice versa may not be always true.

                – neo
                Nov 7 '18 at 5:54
















              71














              Perfect:



                     x
              /
              /
              x x
              / /
              x x x x
              / / / /
              x x x x x x x x


              Complete:



                     x
              /
              /
              x x
              / /
              x x x x
              / /
              x x x


              Strict:



                     x
              /
              /
              x x
              /
              x x
              /
              x x





              share|improve this answer





















              • 3





                By perfect binary tree you mean full binary tree referred by the OP?

                – RBT
                May 4 '17 at 2:12











              • Perfect binary tree is both Strict/Full binary tree as well as Complete binary tree but vice versa may not be always true.

                – neo
                Nov 7 '18 at 5:54














              71












              71








              71







              Perfect:



                     x
              /
              /
              x x
              / /
              x x x x
              / / / /
              x x x x x x x x


              Complete:



                     x
              /
              /
              x x
              / /
              x x x x
              / /
              x x x


              Strict:



                     x
              /
              /
              x x
              /
              x x
              /
              x x





              share|improve this answer















              Perfect:



                     x
              /
              /
              x x
              / /
              x x x x
              / / / /
              x x x x x x x x


              Complete:



                     x
              /
              /
              x x
              / /
              x x x x
              / /
              x x x


              Strict:



                     x
              /
              /
              x x
              /
              x x
              /
              x x






              share|improve this answer














              share|improve this answer



              share|improve this answer








              edited Sep 11 '12 at 15:05

























              answered Sep 10 '12 at 21:35









              japreissjapreiss

              7,87512567




              7,87512567








              • 3





                By perfect binary tree you mean full binary tree referred by the OP?

                – RBT
                May 4 '17 at 2:12











              • Perfect binary tree is both Strict/Full binary tree as well as Complete binary tree but vice versa may not be always true.

                – neo
                Nov 7 '18 at 5:54














              • 3





                By perfect binary tree you mean full binary tree referred by the OP?

                – RBT
                May 4 '17 at 2:12











              • Perfect binary tree is both Strict/Full binary tree as well as Complete binary tree but vice versa may not be always true.

                – neo
                Nov 7 '18 at 5:54








              3




              3





              By perfect binary tree you mean full binary tree referred by the OP?

              – RBT
              May 4 '17 at 2:12





              By perfect binary tree you mean full binary tree referred by the OP?

              – RBT
              May 4 '17 at 2:12













              Perfect binary tree is both Strict/Full binary tree as well as Complete binary tree but vice versa may not be always true.

              – neo
              Nov 7 '18 at 5:54





              Perfect binary tree is both Strict/Full binary tree as well as Complete binary tree but vice versa may not be always true.

              – neo
              Nov 7 '18 at 5:54











              41














              There is a difference between a STRICT and FULL BINARY TREE.



              1) FULL BINARY TREE: A binary tree of height h that contains exactly (2^h)-1 elements is called a full binary tree. (Ref: Pg 427, Data Structures, Algorithms and Applications in C++ [University Press], Second Edition by Sartaj Sahni).



              or in other words



              In a FULL BINARY TREE each node has exactly 0 or 2 children and all leaf nodes are on the same level.



              For Example: The following is a FULL BINARY TREE:



                        18
              /
              15 30
              / /
              40 50 100 40


              2) STRICT BINARY TREE: Each node has exactly 0 or 2 children.



              For example: The following is a STRICT BINARY TREE:



                       18
              /
              15 30
              /
              40 50


              I think there's no confusion in the definition of a Complete Binary Tree, still for the completeness of the post I would like to tell what a Complete Binary Tree is.



              3) COMPLETE BINARY TREE: A Binary Tree is complete Binary Tree if all levels are completely filled except possibly the last level and the last level has all keys as left as possible.



              For Example: The following is a COMPLETE BINARY TREE:



                         18
              /
              15 30
              / /
              40 50 100 40
              / /
              8 7 9


              Note: The following is also a Complete Binary Tree:



                       18
              /
              15 30
              / /
              40 50 100 40





              share|improve this answer




























                41














                There is a difference between a STRICT and FULL BINARY TREE.



                1) FULL BINARY TREE: A binary tree of height h that contains exactly (2^h)-1 elements is called a full binary tree. (Ref: Pg 427, Data Structures, Algorithms and Applications in C++ [University Press], Second Edition by Sartaj Sahni).



                or in other words



                In a FULL BINARY TREE each node has exactly 0 or 2 children and all leaf nodes are on the same level.



                For Example: The following is a FULL BINARY TREE:



                          18
                /
                15 30
                / /
                40 50 100 40


                2) STRICT BINARY TREE: Each node has exactly 0 or 2 children.



                For example: The following is a STRICT BINARY TREE:



                         18
                /
                15 30
                /
                40 50


                I think there's no confusion in the definition of a Complete Binary Tree, still for the completeness of the post I would like to tell what a Complete Binary Tree is.



                3) COMPLETE BINARY TREE: A Binary Tree is complete Binary Tree if all levels are completely filled except possibly the last level and the last level has all keys as left as possible.



                For Example: The following is a COMPLETE BINARY TREE:



                           18
                /
                15 30
                / /
                40 50 100 40
                / /
                8 7 9


                Note: The following is also a Complete Binary Tree:



                         18
                /
                15 30
                / /
                40 50 100 40





                share|improve this answer


























                  41












                  41








                  41







                  There is a difference between a STRICT and FULL BINARY TREE.



                  1) FULL BINARY TREE: A binary tree of height h that contains exactly (2^h)-1 elements is called a full binary tree. (Ref: Pg 427, Data Structures, Algorithms and Applications in C++ [University Press], Second Edition by Sartaj Sahni).



                  or in other words



                  In a FULL BINARY TREE each node has exactly 0 or 2 children and all leaf nodes are on the same level.



                  For Example: The following is a FULL BINARY TREE:



                            18
                  /
                  15 30
                  / /
                  40 50 100 40


                  2) STRICT BINARY TREE: Each node has exactly 0 or 2 children.



                  For example: The following is a STRICT BINARY TREE:



                           18
                  /
                  15 30
                  /
                  40 50


                  I think there's no confusion in the definition of a Complete Binary Tree, still for the completeness of the post I would like to tell what a Complete Binary Tree is.



                  3) COMPLETE BINARY TREE: A Binary Tree is complete Binary Tree if all levels are completely filled except possibly the last level and the last level has all keys as left as possible.



                  For Example: The following is a COMPLETE BINARY TREE:



                             18
                  /
                  15 30
                  / /
                  40 50 100 40
                  / /
                  8 7 9


                  Note: The following is also a Complete Binary Tree:



                           18
                  /
                  15 30
                  / /
                  40 50 100 40





                  share|improve this answer













                  There is a difference between a STRICT and FULL BINARY TREE.



                  1) FULL BINARY TREE: A binary tree of height h that contains exactly (2^h)-1 elements is called a full binary tree. (Ref: Pg 427, Data Structures, Algorithms and Applications in C++ [University Press], Second Edition by Sartaj Sahni).



                  or in other words



                  In a FULL BINARY TREE each node has exactly 0 or 2 children and all leaf nodes are on the same level.



                  For Example: The following is a FULL BINARY TREE:



                            18
                  /
                  15 30
                  / /
                  40 50 100 40


                  2) STRICT BINARY TREE: Each node has exactly 0 or 2 children.



                  For example: The following is a STRICT BINARY TREE:



                           18
                  /
                  15 30
                  /
                  40 50


                  I think there's no confusion in the definition of a Complete Binary Tree, still for the completeness of the post I would like to tell what a Complete Binary Tree is.



                  3) COMPLETE BINARY TREE: A Binary Tree is complete Binary Tree if all levels are completely filled except possibly the last level and the last level has all keys as left as possible.



                  For Example: The following is a COMPLETE BINARY TREE:



                             18
                  /
                  15 30
                  / /
                  40 50 100 40
                  / /
                  8 7 9


                  Note: The following is also a Complete Binary Tree:



                           18
                  /
                  15 30
                  / /
                  40 50 100 40






                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Aug 18 '15 at 5:21









                  Saurabh BhatiaSaurabh Bhatia

                  1,235922




                  1,235922























                      9














                      Disclaimer- The main source of some definitions are wikipedia, any suggestion to improve my answer is welcome.



                      Although this post has an accepted answer and is a good one I was still in confusion and would like to add some more clarification regarding the difference between these terms.



                      (1)FULL BINARY TREE- A full binary tree is a binary tree in which every node other than the leaves has two children.This is also called strictly binary tree.



                      enter image description hereenter image description here



                      The above two are the examples of full or strictly binary tree.



                      (2)COMPLETE BINARY TREE- Now, the definition of complete binary tree is quite ambiguous, it states :- 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. It can have between 1 and 2h nodes, as far left as possible, at the last level h



                      Notice the lines in italic.



                      The ambiguity lies in the lines in italics , "except possibly the last" which means that the last level may also be completely filled , i.e this exception need not always be satisfied. If the exception doesn't hold then it is exactly like the second image I posted, which can also be called as perfect binary tree. So, a perfect binary tree is also full and complete but not vice-versa which will be clear by one more definition I need to state:



                      ALMOST COMPLETE BINARY TREE- When the exception in the definition of complete binary tree holds then it is called almost complete binary tree or nearly complete binary tree . It is just a type of complete binary tree itself , but a separate definition is necessary to make it more unambiguous.



                      So an almost complete binary tree will look like this, you can see in the image the nodes are as far left as possible so it is more like a subset of complete binary tree , to say more rigorously every almost complete binary tree is a complete binary tree but not vice versa . :



                      enter image description here






                      share|improve this answer




























                        9














                        Disclaimer- The main source of some definitions are wikipedia, any suggestion to improve my answer is welcome.



                        Although this post has an accepted answer and is a good one I was still in confusion and would like to add some more clarification regarding the difference between these terms.



                        (1)FULL BINARY TREE- A full binary tree is a binary tree in which every node other than the leaves has two children.This is also called strictly binary tree.



                        enter image description hereenter image description here



                        The above two are the examples of full or strictly binary tree.



                        (2)COMPLETE BINARY TREE- Now, the definition of complete binary tree is quite ambiguous, it states :- 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. It can have between 1 and 2h nodes, as far left as possible, at the last level h



                        Notice the lines in italic.



                        The ambiguity lies in the lines in italics , "except possibly the last" which means that the last level may also be completely filled , i.e this exception need not always be satisfied. If the exception doesn't hold then it is exactly like the second image I posted, which can also be called as perfect binary tree. So, a perfect binary tree is also full and complete but not vice-versa which will be clear by one more definition I need to state:



                        ALMOST COMPLETE BINARY TREE- When the exception in the definition of complete binary tree holds then it is called almost complete binary tree or nearly complete binary tree . It is just a type of complete binary tree itself , but a separate definition is necessary to make it more unambiguous.



                        So an almost complete binary tree will look like this, you can see in the image the nodes are as far left as possible so it is more like a subset of complete binary tree , to say more rigorously every almost complete binary tree is a complete binary tree but not vice versa . :



                        enter image description here






                        share|improve this answer


























                          9












                          9








                          9







                          Disclaimer- The main source of some definitions are wikipedia, any suggestion to improve my answer is welcome.



                          Although this post has an accepted answer and is a good one I was still in confusion and would like to add some more clarification regarding the difference between these terms.



                          (1)FULL BINARY TREE- A full binary tree is a binary tree in which every node other than the leaves has two children.This is also called strictly binary tree.



                          enter image description hereenter image description here



                          The above two are the examples of full or strictly binary tree.



                          (2)COMPLETE BINARY TREE- Now, the definition of complete binary tree is quite ambiguous, it states :- 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. It can have between 1 and 2h nodes, as far left as possible, at the last level h



                          Notice the lines in italic.



                          The ambiguity lies in the lines in italics , "except possibly the last" which means that the last level may also be completely filled , i.e this exception need not always be satisfied. If the exception doesn't hold then it is exactly like the second image I posted, which can also be called as perfect binary tree. So, a perfect binary tree is also full and complete but not vice-versa which will be clear by one more definition I need to state:



                          ALMOST COMPLETE BINARY TREE- When the exception in the definition of complete binary tree holds then it is called almost complete binary tree or nearly complete binary tree . It is just a type of complete binary tree itself , but a separate definition is necessary to make it more unambiguous.



                          So an almost complete binary tree will look like this, you can see in the image the nodes are as far left as possible so it is more like a subset of complete binary tree , to say more rigorously every almost complete binary tree is a complete binary tree but not vice versa . :



                          enter image description here






                          share|improve this answer













                          Disclaimer- The main source of some definitions are wikipedia, any suggestion to improve my answer is welcome.



                          Although this post has an accepted answer and is a good one I was still in confusion and would like to add some more clarification regarding the difference between these terms.



                          (1)FULL BINARY TREE- A full binary tree is a binary tree in which every node other than the leaves has two children.This is also called strictly binary tree.



                          enter image description hereenter image description here



                          The above two are the examples of full or strictly binary tree.



                          (2)COMPLETE BINARY TREE- Now, the definition of complete binary tree is quite ambiguous, it states :- 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. It can have between 1 and 2h nodes, as far left as possible, at the last level h



                          Notice the lines in italic.



                          The ambiguity lies in the lines in italics , "except possibly the last" which means that the last level may also be completely filled , i.e this exception need not always be satisfied. If the exception doesn't hold then it is exactly like the second image I posted, which can also be called as perfect binary tree. So, a perfect binary tree is also full and complete but not vice-versa which will be clear by one more definition I need to state:



                          ALMOST COMPLETE BINARY TREE- When the exception in the definition of complete binary tree holds then it is called almost complete binary tree or nearly complete binary tree . It is just a type of complete binary tree itself , but a separate definition is necessary to make it more unambiguous.



                          So an almost complete binary tree will look like this, you can see in the image the nodes are as far left as possible so it is more like a subset of complete binary tree , to say more rigorously every almost complete binary tree is a complete binary tree but not vice versa . :



                          enter image description here







                          share|improve this answer












                          share|improve this answer



                          share|improve this answer










                          answered Sep 28 '14 at 19:36









                          0decimal00decimal0

                          2,88811732




                          2,88811732























                              5














                              Concluding from above answers, Here is the exact difference between full/strictly, complete and perfect binary trees




                              1. Full/Strictly binary tree :- Every node except the leaf nodes have two children


                              2. Complete binary tree :- Every level except the last level is completely filled and all the nodes are left justified.


                              3. Perfect binary tree :- Every node except the leaf nodes have two children and every level (last level too) is completely filled.







                              share|improve this answer




























                                5














                                Concluding from above answers, Here is the exact difference between full/strictly, complete and perfect binary trees




                                1. Full/Strictly binary tree :- Every node except the leaf nodes have two children


                                2. Complete binary tree :- Every level except the last level is completely filled and all the nodes are left justified.


                                3. Perfect binary tree :- Every node except the leaf nodes have two children and every level (last level too) is completely filled.







                                share|improve this answer


























                                  5












                                  5








                                  5







                                  Concluding from above answers, Here is the exact difference between full/strictly, complete and perfect binary trees




                                  1. Full/Strictly binary tree :- Every node except the leaf nodes have two children


                                  2. Complete binary tree :- Every level except the last level is completely filled and all the nodes are left justified.


                                  3. Perfect binary tree :- Every node except the leaf nodes have two children and every level (last level too) is completely filled.







                                  share|improve this answer













                                  Concluding from above answers, Here is the exact difference between full/strictly, complete and perfect binary trees




                                  1. Full/Strictly binary tree :- Every node except the leaf nodes have two children


                                  2. Complete binary tree :- Every level except the last level is completely filled and all the nodes are left justified.


                                  3. Perfect binary tree :- Every node except the leaf nodes have two children and every level (last level too) is completely filled.








                                  share|improve this answer












                                  share|improve this answer



                                  share|improve this answer










                                  answered Jan 31 '15 at 13:59









                                  LotusLotus

                                  5615




                                  5615























                                      1














                                      Consider a binary tree whose nodes are drawn in a tree fashion. Now start numbering the nodes from top to bottom and left to right. A complete tree has these properties:



                                      If n has children then all nodes numbered less than n have two children.



                                      If n has one child it must be the left child and all nodes less than n have two children. In addition no node numbered greater than n has children.



                                      If n has no children then no node numbered greater than n has children.



                                      A complete binary tree can be used to represent a heap. It can be easily represented in contiguous memory with no gaps (i.e. all array elements are used save for any space that may exist at the end).






                                      share|improve this answer




























                                        1














                                        Consider a binary tree whose nodes are drawn in a tree fashion. Now start numbering the nodes from top to bottom and left to right. A complete tree has these properties:



                                        If n has children then all nodes numbered less than n have two children.



                                        If n has one child it must be the left child and all nodes less than n have two children. In addition no node numbered greater than n has children.



                                        If n has no children then no node numbered greater than n has children.



                                        A complete binary tree can be used to represent a heap. It can be easily represented in contiguous memory with no gaps (i.e. all array elements are used save for any space that may exist at the end).






                                        share|improve this answer


























                                          1












                                          1








                                          1







                                          Consider a binary tree whose nodes are drawn in a tree fashion. Now start numbering the nodes from top to bottom and left to right. A complete tree has these properties:



                                          If n has children then all nodes numbered less than n have two children.



                                          If n has one child it must be the left child and all nodes less than n have two children. In addition no node numbered greater than n has children.



                                          If n has no children then no node numbered greater than n has children.



                                          A complete binary tree can be used to represent a heap. It can be easily represented in contiguous memory with no gaps (i.e. all array elements are used save for any space that may exist at the end).






                                          share|improve this answer













                                          Consider a binary tree whose nodes are drawn in a tree fashion. Now start numbering the nodes from top to bottom and left to right. A complete tree has these properties:



                                          If n has children then all nodes numbered less than n have two children.



                                          If n has one child it must be the left child and all nodes less than n have two children. In addition no node numbered greater than n has children.



                                          If n has no children then no node numbered greater than n has children.



                                          A complete binary tree can be used to represent a heap. It can be easily represented in contiguous memory with no gaps (i.e. all array elements are used save for any space that may exist at the end).







                                          share|improve this answer












                                          share|improve this answer



                                          share|improve this answer










                                          answered Sep 10 '12 at 21:33









                                          Craig WrightCraig Wright

                                          1,1091819




                                          1,1091819























                                              1














                                              Full binary tree are a complete binary tree but reverse is not possible, and if the depth of the binary is n the no. of nodes in the full binary tree is ( 2^n-1 ). It is not necessary in the binary tree that it have two child but in the full binary it every node have no or two child.






                                              share|improve this answer


























                                              • You cannot strictly say that "reverse is not possible " in fact your this very assumption is defied in the example of complete tree in the accepted answer ... you should rather say that may or may not be possible

                                                – 0decimal0
                                                Aug 30 '14 at 17:34













                                              • if the depth of the binary is n the no. of nodes in the full binary tree is ( 2^n-1 ): but a full binary tree definition is a tree where every node is either a leaf or has two children. So the max possible no. of children is ( 2^n-1 ) but it may be less than that.

                                                – mrida
                                                Sep 27 '14 at 10:49
















                                              1














                                              Full binary tree are a complete binary tree but reverse is not possible, and if the depth of the binary is n the no. of nodes in the full binary tree is ( 2^n-1 ). It is not necessary in the binary tree that it have two child but in the full binary it every node have no or two child.






                                              share|improve this answer


























                                              • You cannot strictly say that "reverse is not possible " in fact your this very assumption is defied in the example of complete tree in the accepted answer ... you should rather say that may or may not be possible

                                                – 0decimal0
                                                Aug 30 '14 at 17:34













                                              • if the depth of the binary is n the no. of nodes in the full binary tree is ( 2^n-1 ): but a full binary tree definition is a tree where every node is either a leaf or has two children. So the max possible no. of children is ( 2^n-1 ) but it may be less than that.

                                                – mrida
                                                Sep 27 '14 at 10:49














                                              1












                                              1








                                              1







                                              Full binary tree are a complete binary tree but reverse is not possible, and if the depth of the binary is n the no. of nodes in the full binary tree is ( 2^n-1 ). It is not necessary in the binary tree that it have two child but in the full binary it every node have no or two child.






                                              share|improve this answer















                                              Full binary tree are a complete binary tree but reverse is not possible, and if the depth of the binary is n the no. of nodes in the full binary tree is ( 2^n-1 ). It is not necessary in the binary tree that it have two child but in the full binary it every node have no or two child.







                                              share|improve this answer














                                              share|improve this answer



                                              share|improve this answer








                                              edited Oct 16 '12 at 19:19









                                              bmu

                                              21.3k87693




                                              21.3k87693










                                              answered Oct 16 '12 at 19:13









                                              Raghvendra Singh ThakurRaghvendra Singh Thakur

                                              111




                                              111













                                              • You cannot strictly say that "reverse is not possible " in fact your this very assumption is defied in the example of complete tree in the accepted answer ... you should rather say that may or may not be possible

                                                – 0decimal0
                                                Aug 30 '14 at 17:34













                                              • if the depth of the binary is n the no. of nodes in the full binary tree is ( 2^n-1 ): but a full binary tree definition is a tree where every node is either a leaf or has two children. So the max possible no. of children is ( 2^n-1 ) but it may be less than that.

                                                – mrida
                                                Sep 27 '14 at 10:49



















                                              • You cannot strictly say that "reverse is not possible " in fact your this very assumption is defied in the example of complete tree in the accepted answer ... you should rather say that may or may not be possible

                                                – 0decimal0
                                                Aug 30 '14 at 17:34













                                              • if the depth of the binary is n the no. of nodes in the full binary tree is ( 2^n-1 ): but a full binary tree definition is a tree where every node is either a leaf or has two children. So the max possible no. of children is ( 2^n-1 ) but it may be less than that.

                                                – mrida
                                                Sep 27 '14 at 10:49

















                                              You cannot strictly say that "reverse is not possible " in fact your this very assumption is defied in the example of complete tree in the accepted answer ... you should rather say that may or may not be possible

                                              – 0decimal0
                                              Aug 30 '14 at 17:34







                                              You cannot strictly say that "reverse is not possible " in fact your this very assumption is defied in the example of complete tree in the accepted answer ... you should rather say that may or may not be possible

                                              – 0decimal0
                                              Aug 30 '14 at 17:34















                                              if the depth of the binary is n the no. of nodes in the full binary tree is ( 2^n-1 ): but a full binary tree definition is a tree where every node is either a leaf or has two children. So the max possible no. of children is ( 2^n-1 ) but it may be less than that.

                                              – mrida
                                              Sep 27 '14 at 10:49





                                              if the depth of the binary is n the no. of nodes in the full binary tree is ( 2^n-1 ): but a full binary tree definition is a tree where every node is either a leaf or has two children. So the max possible no. of children is ( 2^n-1 ) but it may be less than that.

                                              – mrida
                                              Sep 27 '14 at 10:49











                                              1














                                              To start with basics, it is very important to understand binary tree itself to understand different types of it.



                                              A tree is a binary tree if and only if :-



                                              – It has a root node , which may not have any child nodes (0 childnodes, NULL tree)



                                              –Root node may have 1 or 2 child nodes . Each such node forms abinary tree itself 



                                              –Number of child nodes can be 0 ,1 ,2.......not more than 2



                                              –There is a unique path from the root to every other node



                                              Example :



                                                      X
                                              /
                                              X X
                                              /
                                              X X


                                              Coming to your inquired terminologies:



                                              A binary tree is a complete binary tree ( of height h , we take root node as 0 ) if and only if :-



                                              Level 0 to h-1 represent a full binary tree of height h-1



                                              – One or more nodes in level h-1 may have 0, or 1 child nodes



                                              If j,k are nodes in level h-1, then j has more child nodes than k if and only if j is to the left of k , i.e. the last level (h) can be missing leaf nodes, however the ones present must be shifted to the left



                                              Example :



                                                                        X
                                              /
                                              /
                                              /
                                              X X
                                              / /
                                              X X X X
                                              / / / /
                                              X X X X X X X X


                                              A binary tree is a strictly binary tree if and only if :-



                                              Each node has exactly two child nodes or no nodes



                                              Example :



                                                       X
                                              /
                                              X X
                                              /
                                              X X
                                              / /
                                              X X X X


                                              A binary tree is a full binary tree if and only if :-



                                              Each non leaf node has exactly two child nodes



                                              All leaf nodes are at the same level



                                              Example :



                                                                        X
                                              /
                                              /
                                              /
                                              X X
                                              / /
                                              X X X X
                                              / / / /
                                              X X X X X X X X
                                              / / / / / / / /
                                              X X X X X X X X X X X X X X X X


                                              You should also know what a perfect binary tree is?



                                              A binary tree is a perfect binary tree if and only if :-



                                              – is a full binary tree



                                              – All leaf nodes are at the same level



                                              Example :



                                                                        X
                                              /
                                              /
                                              /
                                              X X
                                              / /
                                              X X X X
                                              / / / /
                                              X X X X X X X X
                                              / / / / / / / /
                                              X X X X X X X X X X X X X X X X


                                              Well, I am sorry I cannot post images as I do not have 10 reputation.
                                              Hope this helps you and others!






                                              share|improve this answer






























                                                1














                                                To start with basics, it is very important to understand binary tree itself to understand different types of it.



                                                A tree is a binary tree if and only if :-



                                                – It has a root node , which may not have any child nodes (0 childnodes, NULL tree)



                                                –Root node may have 1 or 2 child nodes . Each such node forms abinary tree itself 



                                                –Number of child nodes can be 0 ,1 ,2.......not more than 2



                                                –There is a unique path from the root to every other node



                                                Example :



                                                        X
                                                /
                                                X X
                                                /
                                                X X


                                                Coming to your inquired terminologies:



                                                A binary tree is a complete binary tree ( of height h , we take root node as 0 ) if and only if :-



                                                Level 0 to h-1 represent a full binary tree of height h-1



                                                – One or more nodes in level h-1 may have 0, or 1 child nodes



                                                If j,k are nodes in level h-1, then j has more child nodes than k if and only if j is to the left of k , i.e. the last level (h) can be missing leaf nodes, however the ones present must be shifted to the left



                                                Example :



                                                                          X
                                                /
                                                /
                                                /
                                                X X
                                                / /
                                                X X X X
                                                / / / /
                                                X X X X X X X X


                                                A binary tree is a strictly binary tree if and only if :-



                                                Each node has exactly two child nodes or no nodes



                                                Example :



                                                         X
                                                /
                                                X X
                                                /
                                                X X
                                                / /
                                                X X X X


                                                A binary tree is a full binary tree if and only if :-



                                                Each non leaf node has exactly two child nodes



                                                All leaf nodes are at the same level



                                                Example :



                                                                          X
                                                /
                                                /
                                                /
                                                X X
                                                / /
                                                X X X X
                                                / / / /
                                                X X X X X X X X
                                                / / / / / / / /
                                                X X X X X X X X X X X X X X X X


                                                You should also know what a perfect binary tree is?



                                                A binary tree is a perfect binary tree if and only if :-



                                                – is a full binary tree



                                                – All leaf nodes are at the same level



                                                Example :



                                                                          X
                                                /
                                                /
                                                /
                                                X X
                                                / /
                                                X X X X
                                                / / / /
                                                X X X X X X X X
                                                / / / / / / / /
                                                X X X X X X X X X X X X X X X X


                                                Well, I am sorry I cannot post images as I do not have 10 reputation.
                                                Hope this helps you and others!






                                                share|improve this answer




























                                                  1












                                                  1








                                                  1







                                                  To start with basics, it is very important to understand binary tree itself to understand different types of it.



                                                  A tree is a binary tree if and only if :-



                                                  – It has a root node , which may not have any child nodes (0 childnodes, NULL tree)



                                                  –Root node may have 1 or 2 child nodes . Each such node forms abinary tree itself 



                                                  –Number of child nodes can be 0 ,1 ,2.......not more than 2



                                                  –There is a unique path from the root to every other node



                                                  Example :



                                                          X
                                                  /
                                                  X X
                                                  /
                                                  X X


                                                  Coming to your inquired terminologies:



                                                  A binary tree is a complete binary tree ( of height h , we take root node as 0 ) if and only if :-



                                                  Level 0 to h-1 represent a full binary tree of height h-1



                                                  – One or more nodes in level h-1 may have 0, or 1 child nodes



                                                  If j,k are nodes in level h-1, then j has more child nodes than k if and only if j is to the left of k , i.e. the last level (h) can be missing leaf nodes, however the ones present must be shifted to the left



                                                  Example :



                                                                            X
                                                  /
                                                  /
                                                  /
                                                  X X
                                                  / /
                                                  X X X X
                                                  / / / /
                                                  X X X X X X X X


                                                  A binary tree is a strictly binary tree if and only if :-



                                                  Each node has exactly two child nodes or no nodes



                                                  Example :



                                                           X
                                                  /
                                                  X X
                                                  /
                                                  X X
                                                  / /
                                                  X X X X


                                                  A binary tree is a full binary tree if and only if :-



                                                  Each non leaf node has exactly two child nodes



                                                  All leaf nodes are at the same level



                                                  Example :



                                                                            X
                                                  /
                                                  /
                                                  /
                                                  X X
                                                  / /
                                                  X X X X
                                                  / / / /
                                                  X X X X X X X X
                                                  / / / / / / / /
                                                  X X X X X X X X X X X X X X X X


                                                  You should also know what a perfect binary tree is?



                                                  A binary tree is a perfect binary tree if and only if :-



                                                  – is a full binary tree



                                                  – All leaf nodes are at the same level



                                                  Example :



                                                                            X
                                                  /
                                                  /
                                                  /
                                                  X X
                                                  / /
                                                  X X X X
                                                  / / / /
                                                  X X X X X X X X
                                                  / / / / / / / /
                                                  X X X X X X X X X X X X X X X X


                                                  Well, I am sorry I cannot post images as I do not have 10 reputation.
                                                  Hope this helps you and others!






                                                  share|improve this answer















                                                  To start with basics, it is very important to understand binary tree itself to understand different types of it.



                                                  A tree is a binary tree if and only if :-



                                                  – It has a root node , which may not have any child nodes (0 childnodes, NULL tree)



                                                  –Root node may have 1 or 2 child nodes . Each such node forms abinary tree itself 



                                                  –Number of child nodes can be 0 ,1 ,2.......not more than 2



                                                  –There is a unique path from the root to every other node



                                                  Example :



                                                          X
                                                  /
                                                  X X
                                                  /
                                                  X X


                                                  Coming to your inquired terminologies:



                                                  A binary tree is a complete binary tree ( of height h , we take root node as 0 ) if and only if :-



                                                  Level 0 to h-1 represent a full binary tree of height h-1



                                                  – One or more nodes in level h-1 may have 0, or 1 child nodes



                                                  If j,k are nodes in level h-1, then j has more child nodes than k if and only if j is to the left of k , i.e. the last level (h) can be missing leaf nodes, however the ones present must be shifted to the left



                                                  Example :



                                                                            X
                                                  /
                                                  /
                                                  /
                                                  X X
                                                  / /
                                                  X X X X
                                                  / / / /
                                                  X X X X X X X X


                                                  A binary tree is a strictly binary tree if and only if :-



                                                  Each node has exactly two child nodes or no nodes



                                                  Example :



                                                           X
                                                  /
                                                  X X
                                                  /
                                                  X X
                                                  / /
                                                  X X X X


                                                  A binary tree is a full binary tree if and only if :-



                                                  Each non leaf node has exactly two child nodes



                                                  All leaf nodes are at the same level



                                                  Example :



                                                                            X
                                                  /
                                                  /
                                                  /
                                                  X X
                                                  / /
                                                  X X X X
                                                  / / / /
                                                  X X X X X X X X
                                                  / / / / / / / /
                                                  X X X X X X X X X X X X X X X X


                                                  You should also know what a perfect binary tree is?



                                                  A binary tree is a perfect binary tree if and only if :-



                                                  – is a full binary tree



                                                  – All leaf nodes are at the same level



                                                  Example :



                                                                            X
                                                  /
                                                  /
                                                  /
                                                  X X
                                                  / /
                                                  X X X X
                                                  / / / /
                                                  X X X X X X X X
                                                  / / / / / / / /
                                                  X X X X X X X X X X X X X X X X


                                                  Well, I am sorry I cannot post images as I do not have 10 reputation.
                                                  Hope this helps you and others!







                                                  share|improve this answer














                                                  share|improve this answer



                                                  share|improve this answer








                                                  edited Nov 7 '16 at 19:15









                                                  Minderov

                                                  4501615




                                                  4501615










                                                  answered Aug 18 '15 at 6:41









                                                  user2376267user2376267

                                                  163




                                                  163























                                                      1














                                                      In my limited experience with binary tree, I think:





                                                      1. Strictly Binary Tree:Every node except the leaf nodes have two children or only have a root node.


                                                      2. Full Binary Tree: A binary tree of H strictly(or exactly) containing 2^H -1 nodes , it's clear that which every level has the most nodes.


                                                      3. Complete Binary Tree: It is a binary tree in which every level, except possibly the last, is completely filled, and all nodes are as far left as possible.






                                                      share|improve this answer
























                                                      • You're definition for a full binary tree is incorrect, that is the definition of a perfect binary tree. A full binary tree is synonymous with a strictly binary tree. (source: see strictly binary tree: faculty.cs.niu.edu/~mcmahon/CS241/Notes/bintree.html) (source: see perfect binary tree: slideshare.net/ajaykumarc137151/…)

                                                        – Keego
                                                        Aug 12 '17 at 15:50











                                                      • oh, my god, I am confused just now,I will make sure of this. Many thanks.

                                                        – BertKing
                                                        Aug 15 '17 at 3:32











                                                      • No problem :) See the answer by @Lotus below, he nailed it. I just recommended edits for your answer to reflect this.

                                                        – Keego
                                                        Aug 16 '17 at 18:27
















                                                      1














                                                      In my limited experience with binary tree, I think:





                                                      1. Strictly Binary Tree:Every node except the leaf nodes have two children or only have a root node.


                                                      2. Full Binary Tree: A binary tree of H strictly(or exactly) containing 2^H -1 nodes , it's clear that which every level has the most nodes.


                                                      3. Complete Binary Tree: It is a binary tree in which every level, except possibly the last, is completely filled, and all nodes are as far left as possible.






                                                      share|improve this answer
























                                                      • You're definition for a full binary tree is incorrect, that is the definition of a perfect binary tree. A full binary tree is synonymous with a strictly binary tree. (source: see strictly binary tree: faculty.cs.niu.edu/~mcmahon/CS241/Notes/bintree.html) (source: see perfect binary tree: slideshare.net/ajaykumarc137151/…)

                                                        – Keego
                                                        Aug 12 '17 at 15:50











                                                      • oh, my god, I am confused just now,I will make sure of this. Many thanks.

                                                        – BertKing
                                                        Aug 15 '17 at 3:32











                                                      • No problem :) See the answer by @Lotus below, he nailed it. I just recommended edits for your answer to reflect this.

                                                        – Keego
                                                        Aug 16 '17 at 18:27














                                                      1












                                                      1








                                                      1







                                                      In my limited experience with binary tree, I think:





                                                      1. Strictly Binary Tree:Every node except the leaf nodes have two children or only have a root node.


                                                      2. Full Binary Tree: A binary tree of H strictly(or exactly) containing 2^H -1 nodes , it's clear that which every level has the most nodes.


                                                      3. Complete Binary Tree: It is a binary tree in which every level, except possibly the last, is completely filled, and all nodes are as far left as possible.






                                                      share|improve this answer













                                                      In my limited experience with binary tree, I think:





                                                      1. Strictly Binary Tree:Every node except the leaf nodes have two children or only have a root node.


                                                      2. Full Binary Tree: A binary tree of H strictly(or exactly) containing 2^H -1 nodes , it's clear that which every level has the most nodes.


                                                      3. Complete Binary Tree: It is a binary tree in which every level, except possibly the last, is completely filled, and all nodes are as far left as possible.







                                                      share|improve this answer












                                                      share|improve this answer



                                                      share|improve this answer










                                                      answered Jan 5 '17 at 18:14









                                                      BertKingBertKing

                                                      16715




                                                      16715













                                                      • You're definition for a full binary tree is incorrect, that is the definition of a perfect binary tree. A full binary tree is synonymous with a strictly binary tree. (source: see strictly binary tree: faculty.cs.niu.edu/~mcmahon/CS241/Notes/bintree.html) (source: see perfect binary tree: slideshare.net/ajaykumarc137151/…)

                                                        – Keego
                                                        Aug 12 '17 at 15:50











                                                      • oh, my god, I am confused just now,I will make sure of this. Many thanks.

                                                        – BertKing
                                                        Aug 15 '17 at 3:32











                                                      • No problem :) See the answer by @Lotus below, he nailed it. I just recommended edits for your answer to reflect this.

                                                        – Keego
                                                        Aug 16 '17 at 18:27



















                                                      • You're definition for a full binary tree is incorrect, that is the definition of a perfect binary tree. A full binary tree is synonymous with a strictly binary tree. (source: see strictly binary tree: faculty.cs.niu.edu/~mcmahon/CS241/Notes/bintree.html) (source: see perfect binary tree: slideshare.net/ajaykumarc137151/…)

                                                        – Keego
                                                        Aug 12 '17 at 15:50











                                                      • oh, my god, I am confused just now,I will make sure of this. Many thanks.

                                                        – BertKing
                                                        Aug 15 '17 at 3:32











                                                      • No problem :) See the answer by @Lotus below, he nailed it. I just recommended edits for your answer to reflect this.

                                                        – Keego
                                                        Aug 16 '17 at 18:27

















                                                      You're definition for a full binary tree is incorrect, that is the definition of a perfect binary tree. A full binary tree is synonymous with a strictly binary tree. (source: see strictly binary tree: faculty.cs.niu.edu/~mcmahon/CS241/Notes/bintree.html) (source: see perfect binary tree: slideshare.net/ajaykumarc137151/…)

                                                      – Keego
                                                      Aug 12 '17 at 15:50





                                                      You're definition for a full binary tree is incorrect, that is the definition of a perfect binary tree. A full binary tree is synonymous with a strictly binary tree. (source: see strictly binary tree: faculty.cs.niu.edu/~mcmahon/CS241/Notes/bintree.html) (source: see perfect binary tree: slideshare.net/ajaykumarc137151/…)

                                                      – Keego
                                                      Aug 12 '17 at 15:50













                                                      oh, my god, I am confused just now,I will make sure of this. Many thanks.

                                                      – BertKing
                                                      Aug 15 '17 at 3:32





                                                      oh, my god, I am confused just now,I will make sure of this. Many thanks.

                                                      – BertKing
                                                      Aug 15 '17 at 3:32













                                                      No problem :) See the answer by @Lotus below, he nailed it. I just recommended edits for your answer to reflect this.

                                                      – Keego
                                                      Aug 16 '17 at 18:27





                                                      No problem :) See the answer by @Lotus below, he nailed it. I just recommended edits for your answer to reflect this.

                                                      – Keego
                                                      Aug 16 '17 at 18:27











                                                      0














                                                      Let us consider a binary tree of height 'h'. A binary tree is called a complete binary tree if all the leaves are present at height 'h' or 'h-1' without any missing numbers in the sequence.



                                                                         1
                                                      /
                                                      2 3
                                                      /
                                                      4 5


                                                      It is a complete binary tree.



                                                                         1
                                                      /
                                                      2 3
                                                      / /
                                                      4 6


                                                      It is not a complete binary tree as the node of number 5 is missing in the sequence






                                                      share|improve this answer






























                                                        0














                                                        Let us consider a binary tree of height 'h'. A binary tree is called a complete binary tree if all the leaves are present at height 'h' or 'h-1' without any missing numbers in the sequence.



                                                                           1
                                                        /
                                                        2 3
                                                        /
                                                        4 5


                                                        It is a complete binary tree.



                                                                           1
                                                        /
                                                        2 3
                                                        / /
                                                        4 6


                                                        It is not a complete binary tree as the node of number 5 is missing in the sequence






                                                        share|improve this answer




























                                                          0












                                                          0








                                                          0







                                                          Let us consider a binary tree of height 'h'. A binary tree is called a complete binary tree if all the leaves are present at height 'h' or 'h-1' without any missing numbers in the sequence.



                                                                             1
                                                          /
                                                          2 3
                                                          /
                                                          4 5


                                                          It is a complete binary tree.



                                                                             1
                                                          /
                                                          2 3
                                                          / /
                                                          4 6


                                                          It is not a complete binary tree as the node of number 5 is missing in the sequence






                                                          share|improve this answer















                                                          Let us consider a binary tree of height 'h'. A binary tree is called a complete binary tree if all the leaves are present at height 'h' or 'h-1' without any missing numbers in the sequence.



                                                                             1
                                                          /
                                                          2 3
                                                          /
                                                          4 5


                                                          It is a complete binary tree.



                                                                             1
                                                          /
                                                          2 3
                                                          / /
                                                          4 6


                                                          It is not a complete binary tree as the node of number 5 is missing in the sequence







                                                          share|improve this answer














                                                          share|improve this answer



                                                          share|improve this answer








                                                          edited Nov 28 '18 at 6:41

























                                                          answered Nov 27 '18 at 8:53









                                                          Ravi varma IndukuriRavi varma Indukuri

                                                          11




                                                          11






























                                                              draft saved

                                                              draft discarded




















































                                                              Thanks for contributing an answer to Stack Overflow!


                                                              • Please be sure to answer the question. Provide details and share your research!

                                                              But avoid



                                                              • Asking for help, clarification, or responding to other answers.

                                                              • Making statements based on opinion; back them up with references or personal experience.


                                                              To learn more, see our tips on writing great answers.




                                                              draft saved


                                                              draft discarded














                                                              StackExchange.ready(
                                                              function () {
                                                              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f12359660%2fdifference-between-complete-binary-tree-strict-binary-tree-full-binary-tre%23new-answer', 'question_page');
                                                              }
                                                              );

                                                              Post as a guest















                                                              Required, but never shown





















































                                                              Required, but never shown














                                                              Required, but never shown












                                                              Required, but never shown







                                                              Required, but never shown

































                                                              Required, but never shown














                                                              Required, but never shown












                                                              Required, but never shown







                                                              Required, but never shown







                                                              Popular posts from this blog

                                                              Full-time equivalent

                                                              Bicuculline

                                                              さくらももこ