{"id":25529268,"date":"2022-06-20T12:14:39","date_gmt":"2022-06-20T06:44:39","guid":{"rendered":"https:\/\/entri.app\/blog\/?p=25529268"},"modified":"2022-11-19T17:31:43","modified_gmt":"2022-11-19T12:01:43","slug":"trees-in-java-how-to-implement-a-binary-tree","status":"publish","type":"post","link":"https:\/\/entri.app\/blog\/trees-in-java-how-to-implement-a-binary-tree\/","title":{"rendered":"Trees in Java: How to Implement a Binary Tree?"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_79_2 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-69e5c97912214\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-69e5c97912214\"  aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/entri.app\/blog\/trees-in-java-how-to-implement-a-binary-tree\/#What_is_a_binary_tree\" >What is a binary tree?\u00a0<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/entri.app\/blog\/trees-in-java-how-to-implement-a-binary-tree\/#Types_of_Binary_Trees\" >Types of Binary Trees<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/entri.app\/blog\/trees-in-java-how-to-implement-a-binary-tree\/#Implementation_of_Binary_Tree\" >Implementation of Binary Tree<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/entri.app\/blog\/trees-in-java-how-to-implement-a-binary-tree\/#Tree_Traversals\" >Tree Traversals<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/entri.app\/blog\/trees-in-java-how-to-implement-a-binary-tree\/#Applications_of_Binary_Tree\" >Applications of Binary Tree<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/entri.app\/blog\/trees-in-java-how-to-implement-a-binary-tree\/#Using_ArrayList\" >Using ArrayList<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/entri.app\/blog\/trees-in-java-how-to-implement-a-binary-tree\/#Node_Interface\" >Node Interface<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/entri.app\/blog\/trees-in-java-how-to-implement-a-binary-tree\/#Conclusion\" >Conclusion<\/a><\/li><\/ul><\/nav><\/div>\n<p>A binary tree, also known as a binomial tree, is the most basic representation of any tree data structure in computer science. In this post, we\u2019ll cover how to implement binary trees in Java that may be different from what you learned in your class or on Codecademy, but which will cover all of the same core topics and more! <span data-slate-fragment=\"JTVCJTdCJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmNoaWxkcmVuJTIyJTNBJTVCJTdCJTIydGV4dCUyMiUzQSUyMkElMjBiaW5hcnklMjB0cmVlJTIwaXMlMjBhJTIwdHlwZSUyMG9mJTIwZGF0YSUyMHN0cnVjdHVyZSUyMHVzZWQlMjB0byUyMHN0b3JlJTIwZGF0YSUyQyUyMHdpdGglMjBlYWNoJTIwbm9kZSUyMGhvbGRpbmclMjBzb21lJTIwdmFsdWVzJTIwdGhhdCUyMG1heSUyMGhhdmUlMjBjaGlsZHJlbi4lMjBBJTIwdHlwaWNhbCUyMHRyZWUlMjBzdHJ1Y3R1cmUlMjBjYW4lMjBiZSUyMHZpZXdlZCUyMGFzJTIwYW4lMjBpbnZlcnRlZCUyMHRyZWUlMjBpbiUyMHdoaWNoJTIwdGhlJTIwdG9wbW9zdCUyMG5vZGUlMkMlMjBhbHNvJTIwa25vd24lMjBhcyUyMHRoZSUyMHJvb3QlMkMlMjBwb2ludHMlMjB0byUyMGl0cyUyMGNoaWxkJTIwbm9kZXMlMjAoaWYlMjBhbnkpJTIwb3IlMjBpdHMlMjBwYXJlbnQlMjBub2RlJTIwKGlmJTIwaXQlMjBoYXMlMjBubyUyMGNoaWxkcmVuKS4lMjBUaGlzJTIwZGF0YSUyMHN0cnVjdHVyZSUyMGNhbiUyMGJlJTIwZm91bmQlMjB0aHJvdWdob3V0JTIwbmF0dXJlJTIwYW5kJTIwaW4lMjB2YXJpb3VzJTIwcHJvZ3JhbW1pbmclMjBsYW5ndWFnZXMlMkMlMjBpbmNsdWRpbmclMjBKYXZhLiUyMEhlcmUlMjBhcmUlMjAxMCUyMHdheXMlMjB0byUyMGltcGxlbWVudCUyMGElMjBiaW5hcnklMjB0cmVlJTIwaW4lMjBKYXZhJTIwdXNpbmclMjB0aGUlMjBwb3B1bGFyJTIwSmF2YSUyMGNvbGxlY3Rpb25zJTIwbGlicmFyeS4lMjIlN0QlNUQlN0QlNUQ=\">A binary tree is a type of data structure used to store data, with each node holding some values that may have children. A typical tree structure can be viewed as an <a href=\"https:\/\/entri.app\/blog\/java-client-for-appium-a-detailed-study\/\" target=\"_blank\" rel=\"noopener\">inverted tree<\/a> in which the topmost node, also known as the root, points to its child nodes (if any) or its parent node (if it has no children). This data structure can be found throughout nature and in various programming languages, including Java. Here are the ways to implement a binary tree in Java using the popular Java collections library.<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"What_is_a_binary_tree\"><\/span><strong>What is a binary tree?\u00a0<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span data-slate-fragment=\"JTVCJTdCJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmNoaWxkcmVuJTIyJTNBJTVCJTdCJTIydGV4dCUyMiUzQSUyMkElMjBiaW5hcnklMjB0cmVlJTIwaXMlMjBhJTIwdHlwZSUyMG9mJTIwZGF0YSUyMHN0cnVjdHVyZSUyMHVzZWQlMjB0byUyMHN0b3JlJTIwZGF0YSUyQyUyMHdpdGglMjBlYWNoJTIwbm9kZSUyMGhvbGRpbmclMjBzb21lJTIwdmFsdWVzJTIwdGhhdCUyMG1heSUyMGhhdmUlMjBjaGlsZHJlbi4lMjBBJTIwdHlwaWNhbCUyMHRyZWUlMjBzdHJ1Y3R1cmUlMjBjYW4lMjBiZSUyMHZpZXdlZCUyMGFzJTIwYW4lMjBpbnZlcnRlZCUyMHRyZWUlMjBpbiUyMHdoaWNoJTIwdGhlJTIwdG9wbW9zdCUyMG5vZGUlMkMlMjBhbHNvJTIwa25vd24lMjBhcyUyMHRoZSUyMHJvb3QlMkMlMjBwb2ludHMlMjB0byUyMGl0cyUyMGNoaWxkJTIwbm9kZXMlMjAoaWYlMjBhbnkpJTIwb3IlMjBpdHMlMjBwYXJlbnQlMjBub2RlJTIwKGlmJTIwaXQlMjBoYXMlMjBubyUyMGNoaWxkcmVuKS4lMjBUaGlzJTIwZGF0YSUyMHN0cnVjdHVyZSUyMGNhbiUyMGJlJTIwZm91bmQlMjB0aHJvdWdob3V0JTIwbmF0dXJlJTIwYW5kJTIwaW4lMjB2YXJpb3VzJTIwcHJvZ3JhbW1pbmclMjBsYW5ndWFnZXMlMkMlMjBpbmNsdWRpbmclMjBKYXZhLiUyMEhlcmUlMjBhcmUlMjAxMCUyMHdheXMlMjB0byUyMGltcGxlbWVudCUyMGElMjBiaW5hcnklMjB0cmVlJTIwaW4lMjBKYXZhJTIwdXNpbmclMjB0aGUlMjBwb3B1bGFyJTIwSmF2YSUyMGNvbGxlY3Rpb25zJTIwbGlicmFyeS4lMjIlN0QlNUQlN0QlNUQ=\"> A binary tree is an organized collection of nodes, with one node designated as the root of the tree and all other nodes being children of the root node, much like an upside-down tree. A binary tree can be either sorted or unsorted, depending on whether its nodes are arranged from left to right in order of value (an ordered binary tree) or in no particular order (an unordered binary tree). Creating your own data structure to represent a binary tree in Java can help you solve problems such as keeping track of data within an organization, giving you the ability to maintain relationships between two sets of information efficiently and effectively.<\/span><\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/bit.ly\/3ELmCiA\">Get the latest updates on java programming in the Entri app<\/a><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Types_of_Binary_Trees\"><\/span><strong>Types of Binary Trees<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><strong>Full Binary Tree<\/strong><\/h3>\n<p><span data-slate-fragment=\"JTVCJTdCJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmFsaWduJTIyJTNBJTIyJTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyQSUyMGZ1bGwlMjBiaW5hcnklMjB0cmVlJTIwaXMlMjBhJTIwYmluYXJ5JTIwdHJlZSUyMHdoZXJlJTIwZXZlcnklMjBub2RlJTIwaGFzJTIwZWl0aGVyJTIwbm8lMjBjaGlsZHJlbiUyMG9yJTIwdHdvJTIwY2hpbGRyZW4uJTIwVGhlJTIwZXhhbXBsZSUyMG9mJTIwZnVsbHklMjBiaW5hcnklMjB0cmVlcyUyMGFyZSUyMiU3RCU1RCU3RCU1RA==\">A full binary tree is a binary tree where every node has either no children or two children.\u00a0<\/span><\/p>\n<h3><strong>Perfect Binary Tree<\/strong><\/h3>\n<p><span data-slate-fragment=\"JTVCJTdCJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmFsaWduJTIyJTNBJTIyJTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyQSUyMGJpbmFyeSUyMHRyZWUlMjBpcyUyMGNvbnNpZGVyZWQlMjB0byUyMGJlJTIwYSUyMHBlcmZlY3QlMjBiaW5hcnklMjBUcmVlJTIwaWYlMjBldmVyeSUyMG5vZGUlMjBoYXMlMjB0d28lMjBjaGlsZHJlbiUyQyUyMGFuZCUyMGFsbCUyMGxlYWYlMjBub2RlcyUyMGFyZSUyMGF0JTIwdGhlJTIwc2FtZSUyMGxldmVsLiUyMiU3RCU1RCU3RCU1RA==\">A binary tree is considered to be a perfect binary Tree if every node has two children, and all leaf nodes are at the same level.<\/span><\/p>\n<h3><strong>Complete Binary Tree<\/strong><\/h3>\n<p><span data-slate-fragment=\"JTVCJTdCJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmFsaWduJTIyJTNBJTIyJTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyQSUyMGNvbXBsZXRlJTIwYmluYXJ5JTIwdHJlZSUyMGlzJTIwYSUyMGJpbmFyeSUyMHRyZWUlMjB3aGVyZSUyMGVhY2glMjBvZiUyMGl0cyUyMGxldmVscyUyQyUyMGV4Y2x1ZGluZyUyMHRoZSUyMGxhc3QlMjBvbmUlMkMlMjBhcmUlMjBlbnRpcmVseSUyMGZpbGxlZCUyMHdpdGglMjBub2RlcyUyQyUyMGFuZCUyMGFsbCUyMG9mJTIwaXRzJTIwbm9kZXMlMjBhcmUlMjBhcyUyMGZhciUyMHRvJTIwdGhlJTIwbGVmdCUyMHNpZGUlMjBhcyUyMHBvc3NpYmxlLiUyMiU3RCU1RCU3RCU1RA==\">A complete binary tree is a binary tree where each of its levels, excluding the last one, are entirely filled with nodes, and all of its nodes are as far to the left side as possible.<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Implementation_of_Binary_Tree\"><\/span><strong>Implementation of <\/strong><strong>Binary Tree<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p data-slate-node=\"element\" data-slate-fragment=\"JTVCJTdCJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmFsaWduJTIyJTNBJTIyJTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyRm9yJTIwdGhlJTIwaW1wbGVtZW50YXRpb24lMkMlMjB0aGVyZSdzJTIwYW4lMjBhdXhpbGlhcnklMjBOb2RlJTIwY2xhc3MlMjB0aGF0JTIwc3RvcmVzJTIwaW50ZWdlcnMlMjBhbmQlMjBoYXMlMjByZWZlcmVuY2VzJTIwdG8lMjBhbGwlMjBvZiUyMGl0cyUyMGNoaWxkcmVuLiUyMFRoZSUyMGZpcnN0JTIwc3RlcCUyMGlzJTIwZmluZGluZyUyMHRoZSUyMHNwb3QlMjB3aGVyZSUyMHdlJTIwd2FudCUyMHRvJTIwaW5zZXJ0JTIwYSUyMG5ldyUyMG5vZGUlMjBpbiUyMG9yZGVyJTIwdG8lMjBtYWludGFpbiUyMHRoZSUyMHRyZWUncyUyMHN0cnVjdHVyYWwlMjBpbnRlZ3JpdHkuJTIwV2UnbGwlMjBmb2xsb3clMjB0aGVzZSUyMGd1aWRlbGluZXMlMjBzdGFydGluZyUyMGF0JTIwdGhlJTIwcm9vdCUyMG5vZGUlMjIlN0QlNUQlN0QlMkMlN0IlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyYWxpZ24lMjIlM0ElMjIlMjIlMkMlMjJjaGlsZHJlbiUyMiUzQSU1QiU3QiUyMnRleHQlMjIlM0ElMjIlMjIlN0QlNUQlN0QlNUQ=\"><span data-slate-node=\"text\">For the implementation, there&#8217;s an auxiliary Node class that stores integers and has references to all of its children. The first step is finding the spot where we want to insert a new node in order to maintain the tree&#8217;s structural integrity. We&#8217;ll follow these guidelines starting at the root node<\/span><\/p>\n<ul>\n<li>if new node\u2019s value is lower than the current node\u2019s, go to the left child<\/li>\n<li>if new node\u2019s value is greater than the current node\u2019s, go to the right child<\/li>\n<li>when current node is <em>null,<\/em>\u00a0we\u2019ve reached a leaf node, we insert the new node in that position<\/li>\n<\/ul>\n<p>Example<\/p>\n<div>\n<div id=\"highlighter_260401\" class=\"syntaxhighlighter java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<div class=\"line number2 index1 alt1\">2<\/div>\n<div class=\"line number3 index2 alt2\">3<\/div>\n<div class=\"line number4 index3 alt1\">4<\/div>\n<div class=\"line number5 index4 alt2\">5<\/div>\n<div class=\"line number6 index5 alt1\">6<\/div>\n<div class=\"line number7 index6 alt2\">7<\/div>\n<div class=\"line number8 index7 alt1\">8<\/div>\n<div class=\"line number9 index8 alt2\">9<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<div class=\"line number15 index14 alt2\">15<\/div>\n<div class=\"line number16 index15 alt1\">16<\/div>\n<div class=\"line number17 index16 alt2\">17<\/div>\n<div class=\"line number18 index17 alt1\">18<\/div>\n<div class=\"line number19 index18 alt2\">19<\/div>\n<div class=\"line number20 index19 alt1\">20<\/div>\n<div class=\"line number21 index20 alt2\">21<\/div>\n<div class=\"line number22 index21 alt1\">22<\/div>\n<div class=\"line number23 index22 alt2\">23<\/div>\n<div class=\"line number24 index23 alt1\">24<\/div>\n<div class=\"line number25 index24 alt2\">25<\/div>\n<div class=\"line number26 index25 alt1\">26<\/div>\n<div class=\"line number27 index26 alt2\">27<\/div>\n<div class=\"line number28 index27 alt1\">28<\/div>\n<div class=\"line number29 index28 alt2\">29<\/div>\n<div class=\"line number30 index29 alt1\">30<\/div>\n<div class=\"line number31 index30 alt2\">31<\/div>\n<div class=\"line number32 index31 alt1\">32<\/div>\n<div class=\"line number33 index32 alt2\">33<\/div>\n<div class=\"line number34 index33 alt1\">34<\/div>\n<div class=\"line number35 index34 alt2\">35<\/div>\n<div class=\"line number36 index35 alt1\">36<\/div>\n<div class=\"line number37 index36 alt2\">37<\/div>\n<div class=\"line number38 index37 alt1\">38<\/div>\n<div class=\"line number39 index38 alt2\">39<\/div>\n<div class=\"line number40 index39 alt1\">40<\/div>\n<div class=\"line number41 index40 alt2\">41<\/div>\n<div class=\"line number42 index41 alt1\">42<\/div>\n<div class=\"line number43 index42 alt2\">43<\/div>\n<div class=\"line number44 index43 alt1\">44<\/div>\n<div class=\"line number45 index44 alt2\">45<\/div>\n<div class=\"line number46 index45 alt1\">46<\/div>\n<div class=\"line number47 index46 alt2\">47<\/div>\n<div class=\"line number48 index47 alt1\">48<\/div>\n<div class=\"line number49 index48 alt2\">49<\/div>\n<div class=\"line number50 index49 alt1\">50<\/div>\n<div class=\"line number51 index50 alt2\">51<\/div>\n<div class=\"line number52 index51 alt1\">52<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java keyword\">package<\/code> <code class=\"java plain\">MyPackage;<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"java spaces\">\u00a0<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"java keyword\">public<\/code> <code class=\"java keyword\">class<\/code> <code class=\"java plain\">Tree { <\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java keyword\">static<\/code> <code class=\"java keyword\">class<\/code> <code class=\"java plain\">Node {\u00a0\u00a0\u00a0 <\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java keyword\">int<\/code> <code class=\"java plain\">value; <\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">Node left, right; <\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">Node(<\/code><code class=\"java keyword\">int<\/code> <code class=\"java plain\">value){ <\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java keyword\">this<\/code><code class=\"java plain\">.value = value; <\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">left = <\/code><code class=\"java keyword\">null<\/code><code class=\"java plain\">; <\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">right = <\/code><code class=\"java keyword\">null<\/code><code class=\"java plain\">; <\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">} <\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">} <\/code><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java keyword\">public<\/code> <code class=\"java keyword\">void<\/code> <code class=\"java plain\">insert(Node node, <\/code><code class=\"java keyword\">int<\/code> <code class=\"java plain\">value) {<\/code><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java keyword\">if<\/code> <code class=\"java plain\">(value &lt; node.value) { <\/code><code class=\"java keyword\">if<\/code> <code class=\"java plain\">(node.left != <\/code><code class=\"java keyword\">null<\/code><code class=\"java plain\">) { insert(node.left, value); } <\/code><code class=\"java keyword\">else<\/code> <code class=\"java plain\">{ System.out.println(<\/code><code class=\"java string\">\" Inserted \"<\/code> <code class=\"java plain\">+ value + <\/code><code class=\"java string\">\" to left of \"<\/code> <code class=\"java plain\">+ node.value); node.left = <\/code><code class=\"java keyword\">new<\/code> <code class=\"java plain\">Node(value); } } <\/code><code class=\"java keyword\">else<\/code> <code class=\"java keyword\">if<\/code> <code class=\"java plain\">(value &gt; node.value) {<\/code><\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java keyword\">if<\/code> <code class=\"java plain\">(node.right != <\/code><code class=\"java keyword\">null<\/code><code class=\"java plain\">) {<\/code><\/div>\n<div class=\"line number18 index17 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">insert(node.right, value);<\/code><\/div>\n<div class=\"line number19 index18 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">} <\/code><code class=\"java keyword\">else<\/code> <code class=\"java plain\">{<\/code><\/div>\n<div class=\"line number20 index19 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">System.out.println(<\/code><code class=\"java string\">\"\u00a0 Inserted \"<\/code> <code class=\"java plain\">+ value + <\/code><code class=\"java string\">\" to right of \"<\/code><\/div>\n<div class=\"line number21 index20 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">+ node.value);<\/code><\/div>\n<div class=\"line number22 index21 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">node.right = <\/code><code class=\"java keyword\">new<\/code> <code class=\"java plain\">Node(value);<\/code><\/div>\n<div class=\"line number23 index22 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">}<\/code><\/div>\n<div class=\"line number24 index23 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">}<\/code><\/div>\n<div class=\"line number25 index24 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">}<\/code><\/div>\n<div class=\"line number26 index25 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java keyword\">public<\/code> <code class=\"java keyword\">void<\/code> <code class=\"java plain\">traverseInOrder(Node node) {<\/code><\/div>\n<div class=\"line number27 index26 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java keyword\">if<\/code> <code class=\"java plain\">(node != <\/code><code class=\"java keyword\">null<\/code><code class=\"java plain\">) {<\/code><\/div>\n<div class=\"line number28 index27 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">traverseInOrder(node.left);<\/code><\/div>\n<div class=\"line number29 index28 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">System.out.print(<\/code><code class=\"java string\">\" \"<\/code> <code class=\"java plain\">+ node.value);<\/code><\/div>\n<div class=\"line number30 index29 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">traverseInOrder(node.right);<\/code><\/div>\n<div class=\"line number31 index30 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">}<\/code><\/div>\n<div class=\"line number32 index31 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">}<\/code><\/div>\n<div class=\"line number33 index32 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><\/div>\n<div class=\"line number34 index33 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java keyword\">public<\/code> <code class=\"java keyword\">static<\/code> <code class=\"java keyword\">void<\/code> <code class=\"java plain\">main(String args[]) <\/code><\/div>\n<div class=\"line number35 index34 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">{ <\/code><\/div>\n<div class=\"line number36 index35 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">Tree tree = <\/code><code class=\"java keyword\">new<\/code> <code class=\"java plain\">Tree();<\/code><\/div>\n<div class=\"line number37 index36 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">Node root = <\/code><code class=\"java keyword\">new<\/code> <code class=\"java plain\">Node(<\/code><code class=\"java value\">5<\/code><code class=\"java plain\">);<\/code><\/div>\n<div class=\"line number38 index37 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">System.out.println(<\/code><code class=\"java string\">\"Binary Tree Example\"<\/code><code class=\"java plain\">);<\/code><\/div>\n<div class=\"line number39 index38 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">System.out.println(<\/code><code class=\"java string\">\"Building tree with root value \"<\/code> <code class=\"java plain\">+ root.value);<\/code><\/div>\n<div class=\"line number40 index39 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">tree.insert(root, <\/code><code class=\"java value\">2<\/code><code class=\"java plain\">);<\/code><\/div>\n<div class=\"line number41 index40 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">tree.insert(root, <\/code><code class=\"java value\">4<\/code><code class=\"java plain\">);<\/code><\/div>\n<div class=\"line number42 index41 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">tree.insert(root, <\/code><code class=\"java value\">8<\/code><code class=\"java plain\">);<\/code><\/div>\n<div class=\"line number43 index42 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">tree.insert(root, <\/code><code class=\"java value\">6<\/code><code class=\"java plain\">);<\/code><\/div>\n<div class=\"line number44 index43 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">tree.insert(root, <\/code><code class=\"java value\">7<\/code><code class=\"java plain\">);<\/code><\/div>\n<div class=\"line number45 index44 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">tree.insert(root, <\/code><code class=\"java value\">3<\/code><code class=\"java plain\">);<\/code><\/div>\n<div class=\"line number46 index45 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">tree.insert(root, <\/code><code class=\"java value\">9<\/code><code class=\"java plain\">);<\/code><\/div>\n<div class=\"line number47 index46 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">System.out.println(<\/code><code class=\"java string\">\"Traversing tree in order\"<\/code><code class=\"java plain\">);<\/code><\/div>\n<div class=\"line number48 index47 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">tree.traverseLevelOrder();<\/code><\/div>\n<div class=\"line number49 index48 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><\/div>\n<div class=\"line number50 index49 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">}<\/code><\/div>\n<div class=\"line number51 index50 alt2\"><code class=\"java plain\">}<\/code><\/div>\n<div class=\"line number52 index51 alt1\"><code class=\"java spaces\">\u00a0<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><strong>Output:<\/strong><\/p>\n<div>\n<div id=\"highlighter_956624\" class=\"syntaxhighlighter java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<div class=\"line number2 index1 alt1\">2<\/div>\n<div class=\"line number3 index2 alt2\">3<\/div>\n<div class=\"line number4 index3 alt1\">4<\/div>\n<div class=\"line number5 index4 alt2\">5<\/div>\n<div class=\"line number6 index5 alt1\">6<\/div>\n<div class=\"line number7 index6 alt2\">7<\/div>\n<div class=\"line number8 index7 alt1\">8<\/div>\n<div class=\"line number9 index8 alt2\">9<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\">Binary Tree Example<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"java plain\">Building tree with root value <\/code><code class=\"java value\">5<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"java spaces\">\u00a0\u00a0<\/code><code class=\"java plain\">Inserted <\/code><code class=\"java value\">2<\/code> <code class=\"java plain\">to left of <\/code><code class=\"java value\">5<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"java spaces\">\u00a0\u00a0<\/code><code class=\"java plain\">Inserted <\/code><code class=\"java value\">4<\/code> <code class=\"java plain\">to right of <\/code><code class=\"java value\">2<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"java spaces\">\u00a0\u00a0<\/code><code class=\"java plain\">Inserted <\/code><code class=\"java value\">8<\/code> <code class=\"java plain\">to right of <\/code><code class=\"java value\">5<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"java spaces\">\u00a0\u00a0<\/code><code class=\"java plain\">Inserted <\/code><code class=\"java value\">6<\/code> <code class=\"java plain\">to left of <\/code><code class=\"java value\">8<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"java spaces\">\u00a0\u00a0<\/code><code class=\"java plain\">Inserted <\/code><code class=\"java value\">7<\/code> <code class=\"java plain\">to right of <\/code><code class=\"java value\">6<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"java spaces\">\u00a0\u00a0<\/code><code class=\"java plain\">Inserted <\/code><code class=\"java value\">3<\/code> <code class=\"java plain\">to left of <\/code><code class=\"java value\">4<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"java spaces\">\u00a0\u00a0<\/code><code class=\"java plain\">Inserted <\/code><code class=\"java value\">9<\/code> <code class=\"java plain\">to right of <\/code><code class=\"java value\">8<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"java plain\">Traversing tree in order<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"java spaces\">\u00a0<\/code><code class=\"java value\">2<\/code> <code class=\"java value\">3<\/code> <code class=\"java value\">4<\/code> <code class=\"java value\">5<\/code> <code class=\"java value\">6<\/code> <code class=\"java value\">7<\/code> <code class=\"java value\">8<\/code> <code class=\"java value\">9<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p style=\"text-align: center;\"><a href=\"https:\/\/bit.ly\/3ELmCiA\">Get the latest updates on java programming in the Entri app<\/a><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Tree_Traversals\"><\/span><strong>Tree Traversals<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span data-slate-fragment=\"JTVCJTdCJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmFsaWduJTIyJTNBJTIyJTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyVHJlZXMlMjBjYW4lMjBiZSUyMHRyYXZlcnNlZCUyMGluJTIwbWFueSUyMGRpZmZlcmVudCUyMHdheXMlM0ElMjBMZXQncyUyMHVzZSUyMHRoZSUyMHNhbWUlMjB0cmVlJTIwZXhhbXBsZSUyMHRoYXQlMjB3ZSUyMHVzZWQlMjBiZWZvcmUlMjBmb3IlMjBlYWNoJTIwY2FzZS4lMjIlN0QlNUQlN0QlNUQ=\">Trees can be traversed in many different ways: Let&#8217;s use the same tree example that we used before for each case.<\/span><\/p>\n<h3><strong>Depth First Search<\/strong><\/h3>\n<p><span data-slate-fragment=\"JTVCJTdCJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmFsaWduJTIyJTNBJTIyJTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyRGVwdGgtZmlyc3QlMjBzZWFyY2glMjBpcyUyMGElMjB0eXBlJTIwb2YlMjB0cmF2ZXJzYWwlMjB3aGVyZSUyMHlvdSUyMGdvJTIwYXMlMjBkZWVwJTIwYXMlMjBwb3NzaWJsZSUyMGRvd24lMjBvbmUlMjBwYXRoJTIwYmVmb3JlJTIwYmFja2luZyUyMHVwJTIwYW5kJTIwdHJ5aW5nJTIwYSUyMGRpZmZlcmVudCUyMG9uZS4lMjBJbiUyMG9yZGVyJTJDJTIwcHJlLW9yZGVyJTIwb3IlMjBwb3N0LW9yZGVyJTIwLSUyMHRoZXJlJTIwYXJlJTIwbWFueSUyMG1ldGhvZHMlMjB0byUyMHRyeSUyMHdoZW4lMjBpdCUyMGNvbWVzJTIwdG8lMjB0aGlzJTIwa2luZCUyMG9mJTIwYWxnb3JpdGhtLiUyMiU3RCU1RCU3RCU1RA==\">Depth-first search is a type of traversal where you go as deep as possible down one path before backing up and trying a different one. In order, pre-order or post-order &#8211; there are many methods to try when it comes to this kind of algorithm.<\/span><\/p>\n<p><strong>Pre-Order Traversal<\/strong><\/p>\n<p data-slate-node=\"element\" data-slate-fragment=\"JTVCJTdCJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmFsaWduJTIyJTNBJTIyJTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyJTIyJTdEJTVEJTdEJTJDJTdCJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmFsaWduJTIyJTNBJTIyJTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIySW4lMjBwcmUtb3JkZXIlMjB0cmF2ZXJzYWwlMkMlMjB5b3UlMjBhbHdheXMlMjBzdGFydCUyMGZyb20lMjB0aGUlMjByb290JTIwbm9kZSUyMGZpcnN0JTIwYmVmb3JlJTIwZ29pbmclMjB0byUyMGVpdGhlciUyMG9mJTIwaXRzJTIwdHdvJTIwY2hpbGRyZW4uJTIwVGhpcyUyMGlzJTIwYW4lMjBleGFtcGxlJTIwb2YlMjBob3clMjB0aGlzJTIwd29ya3MlMjBpbiUyMFB5dGhvbiUyMGNvZGUlMjIlN0QlNUQlN0QlNUQ=\"><span data-slate-node=\"text\">In pre-order traversal, you always start from the root node first before going to either of its two children. This is an example of how this works in Python code<\/span><\/p>\n<div>\n<div id=\"highlighter_252195\" class=\"syntaxhighlighter java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<div class=\"line number2 index1 alt1\">2<\/div>\n<div class=\"line number3 index2 alt2\">3<\/div>\n<div class=\"line number4 index3 alt1\">4<\/div>\n<div class=\"line number5 index4 alt2\">5<\/div>\n<div class=\"line number6 index5 alt1\">6<\/div>\n<div class=\"line number7 index6 alt2\">7<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java keyword\">public<\/code> <code class=\"java keyword\">void<\/code> <code class=\"java plain\">traversePreOrder(Node node) {<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java keyword\">if<\/code> <code class=\"java plain\">(node != <\/code><code class=\"java keyword\">null<\/code><code class=\"java plain\">) {<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">System.out.print(<\/code><code class=\"java string\">\" \"<\/code> <code class=\"java plain\">+ node.value);<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">traversePreOrder(node.left);<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">traversePreOrder(node.right);<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">}<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"java plain\">}<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><strong>Output:<\/strong><\/p>\n<div>\n<div id=\"highlighter_226853\" class=\"syntaxhighlighter java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java value\">5<\/code> <code class=\"java value\">2<\/code> <code class=\"java value\">4<\/code> <code class=\"java value\">3<\/code> <code class=\"java value\">8<\/code> <code class=\"java value\">6<\/code> <code class=\"java value\">7<\/code> <code class=\"java value\">9<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p style=\"text-align: center;\"><a href=\"https:\/\/bit.ly\/3ELmCiA\">Get the latest updates on java programming in the Entri app<\/a><\/p>\n<p><strong>Post-Order Traversal<\/strong><\/p>\n<p>In Post-order traversal you visit the left subtree first, then the right subtree, and the root node at the end. Here\u2019s the code.<\/p>\n<div>\n<div id=\"highlighter_308958\" class=\"syntaxhighlighter java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<div class=\"line number2 index1 alt1\">2<\/div>\n<div class=\"line number3 index2 alt2\">3<\/div>\n<div class=\"line number4 index3 alt1\">4<\/div>\n<div class=\"line number5 index4 alt2\">5<\/div>\n<div class=\"line number6 index5 alt1\">6<\/div>\n<div class=\"line number7 index6 alt2\">7<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java keyword\">public<\/code> <code class=\"java keyword\">void<\/code> <code class=\"java plain\">traversePostOrder(Node node) {<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java keyword\">if<\/code> <code class=\"java plain\">(node != <\/code><code class=\"java keyword\">null<\/code><code class=\"java plain\">) {<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">traversePostOrder(node.left);<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">traversePostOrder(node.right);<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">System.out.print(<\/code><code class=\"java string\">\" \"<\/code> <code class=\"java plain\">+ node.value);<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">}<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"java plain\">}<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><strong>Output:<\/strong><\/p>\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java value\">3<\/code> <code class=\"java value\">4<\/code> <code class=\"java value\">2<\/code> <code class=\"java value\">7<\/code> <code class=\"java value\">6<\/code> <code class=\"java value\">9<\/code> <code class=\"java value\">8<\/code> <code class=\"java value\">5<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3><strong>Breadth-First Search<\/strong><\/h3>\n<p data-slate-node=\"element\" data-slate-fragment=\"JTVCJTdCJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmFsaWduJTIyJTNBJTIyJTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyVGhpcyUyMHR5cGUlMjBvZiUyMHRyYXZlcnNhbCUyMGlzJTIwbXVjaCUyMGxpa2UlMjB0aHJvd2luZyUyMGElMjBzdG9uZSUyMGluJTIwdGhlJTIwY2VudGVyJTIwb2YlMjBhJTIwcG9uZCUyMGFuZCUyMG9ic2VydmluZyUyMGhvdyUyMGl0JTIwcmlwcGxlcyUyMG91dCUyMGZyb20lMjB0aGVyZS4lMjBUaGlzJTIwZnVuY3Rpb24lMjBnb2VzJTIwdG8lMjBlYWNoJTIwbm9kZSUyMGF0JTIwZXZlcnklMjBsZXZlbCUyMGJlZm9yZSUyMG1vdmluZyUyMG9udG8lMjB0aGUlMjBuZXh0JTJDJTIwanVzdCUyMGFzJTIwaWYlMjBvbmUlMjB3ZXJlJTIwcmVhZGluZyUyMGFuJTIwZW5jeWNsb3BlZGlhJTIwYXJ0aWNsZSUyMHdoZXJlJTIwdGhleSUyMHRyYXZlbCUyMHRocm91Z2glMjBpbmZvcm1hdGlvbiUyMHN0YXJ0aW5nJTIwYXQlMjBBJTIwYW5kJTIwd29ya2luZyUyMHRoZWlyJTIwd2F5JTIwZG93biUyMHRvJTIwWi4lMjBMZXZlbCUyMG9yZGVyJTIwb3IlMjBicmVhZHRoJTIwZmlyc3QlMjBzZWFyY2glMjBhcmUlMjBib3RoJTIwbmFtZXMlMjBmb3IlMjB0aGlzJTIwdGVjaG5pcXVlJTIwYmVjYXVzZSUyMGl0JTIwc3RhcnRzJTIwYXQlMjB0aGUlMjByb290JTIwb3IlMjB0b3AlMjBvZiUyMGElMjB0cmVlJTIwYW5kJTIwbW92ZXMlMjBpdHMlMjB3YXklMjBkb3duLiUyMiU3RCU1RCU3RCUyQyU3QiUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJhbGlnbiUyMiUzQSUyMiUyMiUyQyUyMmNoaWxkcmVuJTIyJTNBJTVCJTdCJTIydGV4dCUyMiUzQSUyMiUyMiU3RCU1RCU3RCU1RA==\"><span data-slate-node=\"text\">This type of traversal is much like throwing a stone in the center of a pond and observing how it ripples out from there. This function goes to each node at every level before moving on to the next, just as if one were reading an encyclopedia article where they travel through information starting at A and working their way down to Z. Level order or breadth-first search are both names for this technique because it starts at the root or top of a tree and moves its way down.<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Applications_of_Binary_Tree\"><\/span><strong>Applications of Binary Tree<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p data-slate-node=\"element\"><span data-slate-node=\"text\">Applications of binary trees include:<\/span><\/p>\n<ul>\n<li data-slate-node=\"element\"><span data-slate-node=\"text\">Used in many search applications where data is constantly entering or leaving.<\/span><\/li>\n<li data-slate-node=\"element\"><span data-slate-node=\"text\">As a workflow for compositing digital images for visual effects.<\/span><\/li>\n<li data-slate-node=\"element\"><span data-slate-node=\"text\">Used in almost every high-bandwidth router for storing routing tables.<\/span><\/li>\n<li data-slate-node=\"element\"><span data-slate-node=\"text\">Also used in wireless networking and memory allocation.<\/span><\/li>\n<li data-slate-node=\"element\" data-slate-fragment=\"JTVCJTdCJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmFsaWduJTIyJTNBJTIyJTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyQXBwbGljYXRpb25zJTIwb2YlMjBiaW5hcnklMjB0cmVlcyUyMGluY2x1ZGUlM0ElMjIlN0QlNUQlN0QlMkMlN0IlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyYWxpZ24lMjIlM0ElMjIlMjIlMkMlMjJjaGlsZHJlbiUyMiUzQSU1QiU3QiUyMnRleHQlMjIlM0ElMjJVc2VkJTIwaW4lMjBtYW55JTIwc2VhcmNoJTIwYXBwbGljYXRpb25zJTIwd2hlcmUlMjBkYXRhJTIwaXMlMjBjb25zdGFudGx5JTIwZW50ZXJpbmclMjBvciUyMGxlYXZpbmcuJTIyJTdEJTVEJTdEJTJDJTdCJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmFsaWduJTIyJTNBJTIyJTIyJTJDJTIyY2hpbGRyZW4lMjIlM0ElNUIlN0IlMjJ0ZXh0JTIyJTNBJTIyQXMlMjBhJTIwd29ya2Zsb3clMjBmb3IlMjBjb21wb3NpdGluZyUyMGRpZ2l0YWwlMjBpbWFnZXMlMjBmb3IlMjB2aXN1YWwlMjBlZmZlY3RzLiUyMiU3RCU1RCU3RCUyQyU3QiUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJhbGlnbiUyMiUzQSUyMiUyMiUyQyUyMmNoaWxkcmVuJTIyJTNBJTVCJTdCJTIydGV4dCUyMiUzQSUyMlVzZWQlMjBpbiUyMGFsbW9zdCUyMGV2ZXJ5JTIwaGlnaC1iYW5kd2lkdGglMjByb3V0ZXIlMjBmb3IlMjBzdG9yaW5nJTIwcm91dGluZyUyMHRhYmxlcy4lMjIlN0QlNUQlN0QlMkMlN0IlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyYWxpZ24lMjIlM0ElMjIlMjIlMkMlMjJjaGlsZHJlbiUyMiUzQSU1QiU3QiUyMnRleHQlMjIlM0ElMjJBbHNvJTIwdXNlZCUyMGluJTIwd2lyZWxlc3MlMjBuZXR3b3JraW5nJTIwYW5kJTIwbWVtb3J5JTIwYWxsb2NhdGlvbi4lMjIlN0QlNUQlN0QlMkMlN0IlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyYWxpZ24lMjIlM0ElMjIlMjIlMkMlMjJjaGlsZHJlbiUyMiUzQSU1QiU3QiUyMnRleHQlMjIlM0ElMjJVc2VkJTIwaW4lMjBjb21wcmVzc2lvbiUyMGFsZ29yaXRobXMlMjBhbmQlMjBvdGhlciUyMHByb2dyYW1zLiUyMiU3RCU1RCU3RCU1RA==\"><span data-slate-node=\"text\">Used in compression algorithms and other programs.<\/span><\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Using_ArrayList\"><\/span><strong>Using ArrayList<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>ArrayList provides an efficient way of storing data and is easy to implement using an array. But, as everything has its disadvantages, so does ArrayList. One disadvantage of ArrayList is that it doesn&#8217;t provide any sorting or search capability out-of-the-box. We can sort elements of an ArrayList if we copy them into another List object and then sort that list; but that may not be efficient for large lists. Searching for specific data from within a huge list is also inefficient since we need to compare each element with our data point until we locate it or conclude that our data wasn&#8217;t found. The performance of both these operations depends on how many items are stored in your ArrayList. A more efficient approach would be to use other collection classes provided by Java such as LinkedHashSet and LinkedHashMap, which allow you to store your data while maintaining its order (LinkedHashSet) or while searching for <a href=\"https:\/\/entri.sng.link\/Bcofz\/uu8c\/w409\">data efficiently<\/a> (LinkedHashMap). In fact there are some issues of implementing binary tree using arrays. You will lose time when adding and removing data because of having to resize arrays all over again every time you add or remove one node. Also making changes like deleting, reordering etc. will cost time because they have to recalculate nodes indexes based on changed parent index value. If you know what data type you want to hold inside nodes, it might be better idea to make array of appropriate size right at start. And holding reference of head node in class variable makes insertion\/deletion faster and easier because no need to calculate position of head node anymore. Use LinkedHashMap instead: Another option is use java Map interface instead of ArrayList.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Node_Interface\"><\/span><strong>Node Interface<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The goal of creating a node interface is to make it easier for us to create nodes and ensure that our nodes will be compatible with each other. The only important thing we need to know about every node in our tree is what its data is, so let\u2019s start there. We will define each node as an object that contains one other object\u2014its value. A Node interface might look like Listing 1.1 . Note that since we want to be able to store any type of object in a node, we are using generics. Generics allow us to tell Java exactly what type of objects can go into a particular variable or class. Since we are going to be implementing binary trees (each node has at most two children), we have defined Node as having only one child. Of course, you could always change your mind later on if you wanted to add more functionality. This <a href=\"https:\/\/entri.sng.link\/Bcofz\/uu8c\/w409\">interface also<\/a> defines two methods: getValue() and setValue() . These methods return and set a node\u2019s value respectively. By defining these methods here, they will automatically become available on all subclasses of Node , which is convenient because subclasses must implement these methods themselves anyway. For example, when designing a new subclass of BinaryTreeNode , if you did not define these methods yourself, then calling myBinaryTreeNode2.getValue() would cause compilation errors because no such method exists! However, if you did define them, then calling myBinaryTreeNode2.getValue() would just work fine; your implementation of getValue() would simply execute instead. As another example, suppose you were working on a completely different project and needed to create a custom sorting algorithm; defining Comparable methods in some sort of common superclass may be very useful. The second part of our Node interface is a constructor that takes two parameters: data and leftChild . The constructor allows us to easily instantiate nodes by supplying their values and left children right away rather than requiring us to write code elsewhere that creates nodes manually from scratch.<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/bit.ly\/3ELmCiA\">Get the latest updates on java programming in the Entri app<\/a><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Conclusion\"><\/span><strong>Conclusion<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>I\u2019ve tried to cover everything you need to know about implementing binary trees in Java. Now it\u2019s up to you to build your own implementation of them, and use them as they should be used\u2014to store data! I wish you luck, because binary trees are truly one of <a href=\"https:\/\/entri.sng.link\/Bcofz\/uu8c\/w409\">those things<\/a> that don\u2019t get enough love. There are so many great uses for them that make using them worth every bit of effort. And there\u2019s also always room for improvement on your part. Maybe someday we can see your awesome code on GitHub or elsewhere! Until then&#8230;see ya! \ud83d\ude42 As you can see, articles like these will teach readers how to start blogging, which is essential for anyone who wants to build their personal brand and start earning income online. If you are interested to learn new coding skills, the Entri app will help you to acquire them very easily. Entri app is following a structural study plan so that the students can learn very easily. If you don&#8217;t have a coding background, it won&#8217;t be any problem. You can download the Entri app from the google play store and enroll in your favorite course.<\/p>\n<p style=\"text-align: center;\">\n","protected":false},"excerpt":{"rendered":"<p>A binary tree, also known as a binomial tree, is the most basic representation of any tree data structure in computer science. In this post, we\u2019ll cover how to implement binary trees in Java that may be different from what you learned in your class or on Codecademy, but which will cover all of the [&hellip;]<\/p>\n","protected":false},"author":93,"featured_media":25529269,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[802,1864,1882,1883,1881],"tags":[],"class_list":["post-25529268","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-articles","category-data-science-ml","category-java-programming","category-react-native","category-web-android-development"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Trees in Java: How to Implement a Binary Tree? - Entri Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/entri.app\/blog\/trees-in-java-how-to-implement-a-binary-tree\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Trees in Java: How to Implement a Binary Tree? - Entri Blog\" \/>\n<meta property=\"og:description\" content=\"A binary tree, also known as a binomial tree, is the most basic representation of any tree data structure in computer science. In this post, we\u2019ll cover how to implement binary trees in Java that may be different from what you learned in your class or on Codecademy, but which will cover all of the [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/entri.app\/blog\/trees-in-java-how-to-implement-a-binary-tree\/\" \/>\n<meta property=\"og:site_name\" content=\"Entri Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/entri.me\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-06-20T06:44:39+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-11-19T12:01:43+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/06\/Untitled-72-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"820\" \/>\n\t<meta property=\"og:image:height\" content=\"615\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Akhil M G\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@entri_app\" \/>\n<meta name=\"twitter:site\" content=\"@entri_app\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Akhil M G\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/entri.app\/blog\/trees-in-java-how-to-implement-a-binary-tree\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/entri.app\/blog\/trees-in-java-how-to-implement-a-binary-tree\/\"},\"author\":{\"name\":\"Akhil M G\",\"@id\":\"https:\/\/entri.app\/blog\/#\/schema\/person\/875646423b2cce93c1bd5bc16850fff6\"},\"headline\":\"Trees in Java: How to Implement a Binary Tree?\",\"datePublished\":\"2022-06-20T06:44:39+00:00\",\"dateModified\":\"2022-11-19T12:01:43+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/entri.app\/blog\/trees-in-java-how-to-implement-a-binary-tree\/\"},\"wordCount\":1633,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/entri.app\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/entri.app\/blog\/trees-in-java-how-to-implement-a-binary-tree\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/06\/Untitled-72-1.png\",\"articleSection\":[\"Articles\",\"Data Science and Machine Learning\",\"Java Programming\",\"React Native\",\"Web and Android Development\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/entri.app\/blog\/trees-in-java-how-to-implement-a-binary-tree\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/entri.app\/blog\/trees-in-java-how-to-implement-a-binary-tree\/\",\"url\":\"https:\/\/entri.app\/blog\/trees-in-java-how-to-implement-a-binary-tree\/\",\"name\":\"Trees in Java: How to Implement a Binary Tree? - Entri Blog\",\"isPartOf\":{\"@id\":\"https:\/\/entri.app\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/entri.app\/blog\/trees-in-java-how-to-implement-a-binary-tree\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/entri.app\/blog\/trees-in-java-how-to-implement-a-binary-tree\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/06\/Untitled-72-1.png\",\"datePublished\":\"2022-06-20T06:44:39+00:00\",\"dateModified\":\"2022-11-19T12:01:43+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/entri.app\/blog\/trees-in-java-how-to-implement-a-binary-tree\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/entri.app\/blog\/trees-in-java-how-to-implement-a-binary-tree\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/entri.app\/blog\/trees-in-java-how-to-implement-a-binary-tree\/#primaryimage\",\"url\":\"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/06\/Untitled-72-1.png\",\"contentUrl\":\"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/06\/Untitled-72-1.png\",\"width\":820,\"height\":615,\"caption\":\"Trees in Java: How to Implement a Binary Tree?\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/entri.app\/blog\/trees-in-java-how-to-implement-a-binary-tree\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/entri.app\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Entri Skilling\",\"item\":\"https:\/\/entri.app\/blog\/category\/entri-skilling\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Java Programming\",\"item\":\"https:\/\/entri.app\/blog\/category\/entri-skilling\/java-programming\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Trees in Java: How to Implement a Binary Tree?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/entri.app\/blog\/#website\",\"url\":\"https:\/\/entri.app\/blog\/\",\"name\":\"Entri Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/entri.app\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/entri.app\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/entri.app\/blog\/#organization\",\"name\":\"Entri App\",\"url\":\"https:\/\/entri.app\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/entri.app\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/entri.app\/blog\/wp-content\/uploads\/2019\/10\/Entri-Logo-1.png\",\"contentUrl\":\"https:\/\/entri.app\/blog\/wp-content\/uploads\/2019\/10\/Entri-Logo-1.png\",\"width\":989,\"height\":446,\"caption\":\"Entri App\"},\"image\":{\"@id\":\"https:\/\/entri.app\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/entri.me\/\",\"https:\/\/x.com\/entri_app\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/entri.app\/blog\/#\/schema\/person\/875646423b2cce93c1bd5bc16850fff6\",\"name\":\"Akhil M G\",\"url\":\"https:\/\/entri.app\/blog\/author\/akhil\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Trees in Java: How to Implement a Binary Tree? - Entri Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/entri.app\/blog\/trees-in-java-how-to-implement-a-binary-tree\/","og_locale":"en_US","og_type":"article","og_title":"Trees in Java: How to Implement a Binary Tree? - Entri Blog","og_description":"A binary tree, also known as a binomial tree, is the most basic representation of any tree data structure in computer science. In this post, we\u2019ll cover how to implement binary trees in Java that may be different from what you learned in your class or on Codecademy, but which will cover all of the [&hellip;]","og_url":"https:\/\/entri.app\/blog\/trees-in-java-how-to-implement-a-binary-tree\/","og_site_name":"Entri Blog","article_publisher":"https:\/\/www.facebook.com\/entri.me\/","article_published_time":"2022-06-20T06:44:39+00:00","article_modified_time":"2022-11-19T12:01:43+00:00","og_image":[{"width":820,"height":615,"url":"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/06\/Untitled-72-1.png","type":"image\/png"}],"author":"Akhil M G","twitter_card":"summary_large_image","twitter_creator":"@entri_app","twitter_site":"@entri_app","twitter_misc":{"Written by":"Akhil M G","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/entri.app\/blog\/trees-in-java-how-to-implement-a-binary-tree\/#article","isPartOf":{"@id":"https:\/\/entri.app\/blog\/trees-in-java-how-to-implement-a-binary-tree\/"},"author":{"name":"Akhil M G","@id":"https:\/\/entri.app\/blog\/#\/schema\/person\/875646423b2cce93c1bd5bc16850fff6"},"headline":"Trees in Java: How to Implement a Binary Tree?","datePublished":"2022-06-20T06:44:39+00:00","dateModified":"2022-11-19T12:01:43+00:00","mainEntityOfPage":{"@id":"https:\/\/entri.app\/blog\/trees-in-java-how-to-implement-a-binary-tree\/"},"wordCount":1633,"commentCount":0,"publisher":{"@id":"https:\/\/entri.app\/blog\/#organization"},"image":{"@id":"https:\/\/entri.app\/blog\/trees-in-java-how-to-implement-a-binary-tree\/#primaryimage"},"thumbnailUrl":"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/06\/Untitled-72-1.png","articleSection":["Articles","Data Science and Machine Learning","Java Programming","React Native","Web and Android Development"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/entri.app\/blog\/trees-in-java-how-to-implement-a-binary-tree\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/entri.app\/blog\/trees-in-java-how-to-implement-a-binary-tree\/","url":"https:\/\/entri.app\/blog\/trees-in-java-how-to-implement-a-binary-tree\/","name":"Trees in Java: How to Implement a Binary Tree? - Entri Blog","isPartOf":{"@id":"https:\/\/entri.app\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/entri.app\/blog\/trees-in-java-how-to-implement-a-binary-tree\/#primaryimage"},"image":{"@id":"https:\/\/entri.app\/blog\/trees-in-java-how-to-implement-a-binary-tree\/#primaryimage"},"thumbnailUrl":"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/06\/Untitled-72-1.png","datePublished":"2022-06-20T06:44:39+00:00","dateModified":"2022-11-19T12:01:43+00:00","breadcrumb":{"@id":"https:\/\/entri.app\/blog\/trees-in-java-how-to-implement-a-binary-tree\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/entri.app\/blog\/trees-in-java-how-to-implement-a-binary-tree\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/entri.app\/blog\/trees-in-java-how-to-implement-a-binary-tree\/#primaryimage","url":"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/06\/Untitled-72-1.png","contentUrl":"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/06\/Untitled-72-1.png","width":820,"height":615,"caption":"Trees in Java: How to Implement a Binary Tree?"},{"@type":"BreadcrumbList","@id":"https:\/\/entri.app\/blog\/trees-in-java-how-to-implement-a-binary-tree\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/entri.app\/blog\/"},{"@type":"ListItem","position":2,"name":"Entri Skilling","item":"https:\/\/entri.app\/blog\/category\/entri-skilling\/"},{"@type":"ListItem","position":3,"name":"Java Programming","item":"https:\/\/entri.app\/blog\/category\/entri-skilling\/java-programming\/"},{"@type":"ListItem","position":4,"name":"Trees in Java: How to Implement a Binary Tree?"}]},{"@type":"WebSite","@id":"https:\/\/entri.app\/blog\/#website","url":"https:\/\/entri.app\/blog\/","name":"Entri Blog","description":"","publisher":{"@id":"https:\/\/entri.app\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/entri.app\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/entri.app\/blog\/#organization","name":"Entri App","url":"https:\/\/entri.app\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/entri.app\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/entri.app\/blog\/wp-content\/uploads\/2019\/10\/Entri-Logo-1.png","contentUrl":"https:\/\/entri.app\/blog\/wp-content\/uploads\/2019\/10\/Entri-Logo-1.png","width":989,"height":446,"caption":"Entri App"},"image":{"@id":"https:\/\/entri.app\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/entri.me\/","https:\/\/x.com\/entri_app"]},{"@type":"Person","@id":"https:\/\/entri.app\/blog\/#\/schema\/person\/875646423b2cce93c1bd5bc16850fff6","name":"Akhil M G","url":"https:\/\/entri.app\/blog\/author\/akhil\/"}]}},"_links":{"self":[{"href":"https:\/\/entri.app\/blog\/wp-json\/wp\/v2\/posts\/25529268","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/entri.app\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/entri.app\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/entri.app\/blog\/wp-json\/wp\/v2\/users\/93"}],"replies":[{"embeddable":true,"href":"https:\/\/entri.app\/blog\/wp-json\/wp\/v2\/comments?post=25529268"}],"version-history":[{"count":7,"href":"https:\/\/entri.app\/blog\/wp-json\/wp\/v2\/posts\/25529268\/revisions"}],"predecessor-version":[{"id":25547441,"href":"https:\/\/entri.app\/blog\/wp-json\/wp\/v2\/posts\/25529268\/revisions\/25547441"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/entri.app\/blog\/wp-json\/wp\/v2\/media\/25529269"}],"wp:attachment":[{"href":"https:\/\/entri.app\/blog\/wp-json\/wp\/v2\/media?parent=25529268"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/entri.app\/blog\/wp-json\/wp\/v2\/categories?post=25529268"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/entri.app\/blog\/wp-json\/wp\/v2\/tags?post=25529268"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}