<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>binary tree Archives - NeuralLantern.com</title>
	<atom:link href="https://www.NeuralLantern.com/tag/binary-tree/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.NeuralLantern.com/tag/binary-tree/</link>
	<description></description>
	<lastBuildDate>Mon, 27 Apr 2026 06:42:56 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://www.NeuralLantern.com/wp-content/uploads/2025/04/cropped-2025-04-04-Lantern-03-32x32.png</url>
	<title>binary tree Archives - NeuralLantern.com</title>
	<link>https://www.NeuralLantern.com/tag/binary-tree/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Binary Search Tree Insertion Tutorial: Building a BST from Scratch Step by Step</title>
		<link>https://www.NeuralLantern.com/binary-search-tree-insertion-tutorial-building-a-bst-from-scratch-step-by-step/</link>
					<comments>https://www.NeuralLantern.com/binary-search-tree-insertion-tutorial-building-a-bst-from-scratch-step-by-step/#respond</comments>
		
		<dc:creator><![CDATA[mike]]></dc:creator>
		<pubDate>Mon, 27 Apr 2026 06:42:54 +0000</pubDate>
				<category><![CDATA[Binary Search Trees]]></category>
		<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Data Structures]]></category>
		<category><![CDATA[Videos]]></category>
		<category><![CDATA[algorithms]]></category>
		<category><![CDATA[binary search tree]]></category>
		<category><![CDATA[binary search tree tutorial]]></category>
		<category><![CDATA[binary tree]]></category>
		<category><![CDATA[BST insertion]]></category>
		<category><![CDATA[BST insertion step by step]]></category>
		<category><![CDATA[build BST from scratch]]></category>
		<category><![CDATA[coding interview prep]]></category>
		<category><![CDATA[computer science]]></category>
		<category><![CDATA[data structures]]></category>
		<category><![CDATA[inorder traversal]]></category>
		<category><![CDATA[self balancing trees]]></category>
		<category><![CDATA[time complexity BST]]></category>
		<category><![CDATA[tree height]]></category>
		<guid isPermaLink="false">https://www.NeuralLantern.com/?p=333</guid>

					<description><![CDATA[<p>Learn how to build a binary search tree (BST) by inserting numbers one by one. Follow the insertion process for the sequence 88, 21, 3, 6, 72, 34, 11, 1, 90, 65, 55, 17, 23, 9. See left/right decisions, pointer updates, inorder verification for sorted order, tree height calculation (6), and discussion of O(h) time complexity versus log n for balanced trees. Clear explanations without skipping steps.</p>
<p>The post <a href="https://www.NeuralLantern.com/binary-search-tree-insertion-tutorial-building-a-bst-from-scratch-step-by-step/">Binary Search Tree Insertion Tutorial: Building a BST from Scratch Step by Step</a> appeared first on <a href="https://www.NeuralLantern.com">NeuralLantern.com</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="Binary Search Tree Insertion Tutorial: Building a BST from Scratch Step by Step" width="1380" height="776" src="https://www.youtube.com/embed/-vtcFOEkrEk?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p>In this hands-on tutorial, we build a binary search tree (BST) from scratch by inserting numbers one by one: 88, 21, 3, 6, 72, 34, 11, 1, 90, 65, 55, 17, 23, and 9. Watch as each node finds its correct position following BST rules, with clear explanations of left and right child decisions, parent pointers, and why the tree ends up looking a bit wonky but is still valid.</p>



<p>We cover the full insertion process, verify the tree is a proper BST by checking inorder traversal (sorted order), confirm it&#8217;s a connected acyclic rooted binary tree, and discuss tree height, time complexity (O(h) where h=6 for this tree), and why self-balancing trees matter for better performance.</p>



<p>Great practice for computer science students, programmers learning data structures, or anyone prepping for coding interviews. No fancy animations &#8211; just real step-by-step drawing and reasoning.</p>



<p>If you want more BST practice videos or specific insertion sequences, drop a comment below!</p>



<p>00:00 Introduction to BST Practice<br>00:35 Insertion Sequence Overview<br>00:59 Rules for Building BST<br>01:30 Insert 88 as Root<br>02:20 Continue building the tree from input data<br>13:04 Finish building the tree<br>14:56 Clean Up Diagram<br>15:24 Verify Inorder Traversal<br>16:48 Confirm Tree Properties<br>19:23 Tree Height and Time Complexity<br>22:01 Search Example for 55<br>23:09 Log Time vs Actual Height<br>24:21 Conclusion and Future Topics</p>



<p>=-=-=-=-=-=-=-=-=</p>



<p>Thanks for watching!</p>



<p>Find us on other social media here:</p>



<ul class="wp-block-list">
<li>https://www.NeuralLantern.com/social</li>



<li>Twitter / X: https://x.com/NeuralLantern</li>



<li>Rumble: https://rumble.com/c/c-3696939</li>



<li>BitChute: https://www.bitchute.com/channel/pg1Pvv5dN4Gt</li>



<li>Daily Motion: https://www.dailymotion.com/neurallantern</li>



<li>Minds: https://www.minds.com/neurallantern/</li>



<li>Odysee: https://odysee.com/@NeuralLantern:5</li>
</ul>



<p>Please show your support!</p>



<ul class="wp-block-list">
<li>Buy me a coffee: https://ko-fi.com/neurallantern</li>



<li>Subscribe + Sharing on Social Media</li>



<li>Leave a comment or suggestion</li>



<li>Subscribe to the Blog: https://www.NeuralLantern.com</li>



<li>Watch the main &#8220;pinned&#8221; video of this channel for offers and extras</li>
</ul>



<p>Hello there! Let&#8217;s practice constructing a binary search tree from scratch.</p>



<p>In my previous video, we actually did this already, and in other previous videos we defined</p>



<p>what is a binary search tree and some terminology and stuff like that, but I thought it would</p>



<p>be nice to have two practice videos up. I&#8217;m willing to put more up if people want to make</p>



<p>comments about more trees that they want to see inserted. For now, I&#8217;m just going to say</p>



<p>we will add the following sequence of numbers. So this is a little diagram from the last time we</p>



<p>did this. Let me just, oh, I&#8217;m supposed to make that full screen so it can be bigger. Whoops.</p>



<p>Let me go ahead and add a new slide here. And then I&#8217;m going to do,</p>



<p>Okay, so we&#8217;re going to try to add the following sequence of numbers.</p>



<p>Like I said in my other video, don&#8217;t try to make the tree prettier.</p>



<p>Don&#8217;t get mad if a number looks like it&#8217;s too far to the left or something.</p>



<p>Just follow the normal rules of letting a node drop wherever it is supposed to drop</p>



<p>according to the rules of building a binary search tree.</p>



<p>So the first thing that I&#8217;m going to do is maybe draw a little arrow here.</p>



<p>I&#8217;m going to do like a pink arrow to indicate, you know,</p>



<p>You know, well, maybe I&#8217;ll do like a red one to indicate which number we&#8217;re actually trying to add at the moment.</p>



<p>So it&#8217;s going to be the 88 first.</p>



<p>Let&#8217;s see, we&#8217;ll put that right there.</p>



<p>And then now let&#8217;s say that the 88 is going to drop into our tree somewhere.</p>



<p>First question we have to ask ourselves is do we have a root node?</p>



<p>We don&#8217;t have a root node, which means the number we&#8217;re trying to add should be the root node.</p>



<p>And that&#8217;s it.</p>



<p>So I&#8217;m going to draw like a little circle here, a little node.</p>



<p>and I&#8217;m going to stick the number 88 inside of it we&#8217;re using integer t types</p>



<p>if you recall the last videos these nodes are supposed to be able to hold</p>



<p>almost any data type that you want they don&#8217;t have to be numbers but I&#8217;m just</p>



<p>going to use numbers for the sake of this example because it&#8217;s easier so I&#8217;m</p>



<p>going to say this is our root node it&#8217;s at the very top of the tree and we&#8217;re</p>



<p>done adding 88 and that&#8217;s it next step we&#8217;re going to add the 21 so I&#8217;m just</p>



<p>forward a little bit here and the 21 same question do we have a root node we currently do so that</p>



<p>means we can&#8217;t actually put the 21 there so we have to make a decision does the 21 belong on the</p>



<p>left or the right of the 88 the 21 is less than 88 which means it belongs on the left side so i&#8217;m</p>



<p>just going to duplicate this and try to make a pretty diagram by sort of splitting the difference</p>



<p>in terms of the empty space on the left between the edge of the screen and the existing root node</p>



<p>and make sure that it goes down, you know, a full rank, you know, at least the full height of a node,</p>



<p>maybe a little bit more, but you want to keep all same depth nodes on the same Y coordinate.</p>



<p>It&#8217;s just easier to debug your diagrams that way.</p>



<p>This one&#8217;s actually probably going to get messy. I might have to readjust this a few times.</p>



<p>I think I recalled these were, these might&#8217;ve been bad numbers. I can&#8217;t remember.</p>



<p>Okay. So the 21 is going to be the left child of the 88 because it belongs on the left side.</p>



<p>So I&#8217;m just going to do my little connecting line here.</p>



<p>connecting line here now 21 has a parent of 88 and 88 has a left child of 21 and we&#8217;re done adding</p>



<p>the 21 so i&#8217;m going to move the arrow to the three we&#8217;re now trying to add the three node</p>



<p>again we look at the root node we say okay that&#8217;s occupied so we can&#8217;t use that does three belong on</p>



<p>the left or the right of the 88 well it&#8217;s less than 88 so it belongs on the left the left child</p>



<p>again, does the three belong on the left or the right of the 21? It belongs on the left</p>



<p>because it&#8217;s less than 21 and the left child of 21 is currently doesn&#8217;t exist. It&#8217;s null.</p>



<p>So that means the three is going to be the new left child of the 21 node. Maybe just put it</p>



<p>like right there, put the three there. And then I&#8217;m going to do the connecting line in your code.</p>



<p>You can imagine that the left child pointer of the 21 node has now been set. So it&#8217;s pointing</p>



<p>been set so it&#8217;s pointing to the brand new node we just made for the three and then inside of the</p>



<p>three node its parent pointer is pointing to the 21 node okay so we&#8217;re done adding the three we</p>



<p>move on to the six same thing that we did before we look at the root node uh the six belongs on</p>



<p>the left so i&#8217;m gonna say go to the left the 21 node is it&#8217;s there it&#8217;s occupied so we have to</p>



<p>left of 21 because it&#8217;s less than 21 we go down to the left then we look at the three that&#8217;s also</p>



<p>occupied does the six belong on the left or right of three it belongs on the right side of three</p>



<p>because it&#8217;s greater than three so that means the sixth node is going to be the right child</p>



<p>of three again try to split the difference these diagrams get ugly fast i really</p>



<p>i don&#8217;t i don&#8217;t want to rearrange the topology but i&#8217;m probably gonna have to</p>



<p>I think I&#8217;m like crashing out here.</p>



<p>Oh, no.</p>



<p>Okay.</p>



<p>Nope.</p>



<p>Okay.</p>



<p>Let me try one more time.</p>



<p>These lines are killing me.</p>



<p>Okay.</p>



<p>I&#8217;m just going to update the three to a six and leave a little gap on that line.</p>



<p>It&#8217;s fine.</p>



<p>Now we&#8217;re ready to try to add the 72 node.</p>



<p>We have a little relief here because this is not like a smaller and smaller number that we&#8217;re dealing with.</p>



<p>So, well, we just look at the root node.</p>



<p>72 belongs on the left side so I&#8217;m going to hop to the left here we then look at</p>



<p>the 21 72 belongs on the right side because it&#8217;s greater than 21 so that</p>



<p>means 72 is going to be the right child of 21 so I&#8217;m just going to select this</p>



<p>make a duplicate try to keep the three and the six at the same you know y</p>



<p>coordinate because they&#8217;re on the same descendancy rank they&#8217;re at the same</p>



<p>you know generation whatever you want to call it so I&#8217;m going to put the 72 on</p>



<p>And then I&#8217;m going to do our connecting line, indicating that both nodes now have pointers that refer to each other.</p>



<p>Okay, we&#8217;re done adding the 72.</p>



<p>I&#8217;m going to move this to the right a little bit.</p>



<p>And then, oops, get rid of that little dot.</p>



<p>Now we&#8217;re ready to add the 34.</p>



<p>So the 34, we look at the 88 node occupied.</p>



<p>We go left.</p>



<p>We look at the 21 node.</p>



<p>34 belongs on the right side of 21.</p>



<p>of 21 so then we look at the 72 34 belongs on the left side of 72 so that means 34 is going to be</p>



<p>the left child of 72 so I&#8217;m going to select one of these nodes and duplicate it and say that</p>



<p>you have a left child of 72 now and it&#8217;s going to be the 34 node do my pointer connection real fast</p>



<p>I haven&#8217;t been duplicating the pages. Okay. So, uh, I guess that&#8217;s just for me.</p>



<p>We&#8217;ll move on to adding the 11 node.</p>



<p>So we add the 11 node by looking at the root node first.</p>



<p>11 belongs on the left side. We then look at the 21,</p>



<p>11 belongs on the left of 21. Go to the left here. We look at the three,</p>



<p>11 belongs on the right of the three. We go to the right,</p>



<p>11 belongs on the right of the six node.</p>



<p>This is definitely a gross graph at this point.</p>



<p>at this point. So I&#8217;m going to duplicate this node here and try to split the difference between</p>



<p>the six and the 21 in terms of like the free space. So I&#8217;m just going to drag this down a</p>



<p>little bit there and say that 11 goes as the new right child of the six node. So</p>



<p>just do that. This is a gross diagram. I might want to redraw this later.</p>



<p>Now we&#8217;re ready to try to add the one node.</p>



<p>the one again we look at the root node of the tree and it&#8217;s occupied so we can&#8217;t put it there</p>



<p>we go to the left we go to the left again and the one belongs on the left of the three nodes so we</p>



<p>have a little bit more room there so that&#8217;s good i&#8217;m gonna copy this node and make it the new left</p>



<p>child of the three i&#8217;m gonna like say that our one is right there and then i&#8217;m gonna do the connecting line</p>



<p>okay all right we&#8217;re done adding the one now I&#8217;m gonna add the 90 node oh this is</p>



<p>gonna be nice and easy because the 90 definitely belongs on the right side of</p>



<p>the 80 node whoops what happened okay sorry for making that noise I&#8217;m gonna</p>



<p>duplicate this node here and make it the right child of the 88 node so let&#8217;s see</p>



<p>kind of even there. So we&#8217;re going to put 90 right there. And then I&#8217;m going to do a connecting line</p>



<p>in blue. Now we&#8217;re done adding the 90.</p>



<p>So then we&#8217;re going to add the 65. 65 belongs on the left of the 88 node.</p>



<p>So we&#8217;re kind of in left territory now. It&#8217;s kind of sucky again.</p>



<p>And bounce down to the left. 66 belongs on the right side of the 21 node. So we look at the 72.</p>



<p>look at the 72 it belongs on the left of the 72 we go there it belongs on the right of the 34 so we</p>



<p>go right here as the new right child and the diagram kind of sucks at this point it&#8217;s a little</p>



<p>cramped but i&#8217;m going to try my best to split the difference between the 34 and the 32 visually to</p>



<p>make a nice easy to debug graph so maybe like somewhere around there put 66 then i&#8217;m going to</p>



<p>So the 66 is now the right child of 34.</p>



<p>Okay, next number that we&#8217;re going to add is my computer&#8217;s crashing.</p>



<p>Hello?</p>



<p>What happened?</p>



<p>There we go.</p>



<p>Okay.</p>



<p>So we&#8217;re ready to add the 55.</p>



<p>Oh, God.</p>



<p>Okay, let me see what&#8217;s going to happen here.</p>



<p>This is awful.</p>



<p>is awful i usually say you have to space these out enough so that none of these overlap but</p>



<p>they&#8217;re about to overlap okay we&#8217;ll do go to the left because 55 is less than 88 go to the right</p>



<p>because 55 is greater than 21 go to the left because it&#8217;s less than 72 go to the right because</p>



<p>it&#8217;s greater than 34 then go to the left again because it&#8217;s less than 66 i hate this i hate this</p>



<p>between 34 and 66, just to try to make it easier to debug.</p>



<p>This is almost, I&#8217;m almost stretched</p>



<p>to my mental limit right now.</p>



<p>So I&#8217;m gonna make the left child pointer here</p>



<p>and the new node we just added was 55.</p>



<p>Whoops, yeah, 55.</p>



<p>Okay, my God.</p>



<p>Let me just duplicate this one more time</p>



<p>and get rid of those pink arrows.</p>



<p>arrows let&#8217;s add the 17 next 17 right here um so once again we look at the root node it&#8217;s occupied</p>



<p>go to the left because it&#8217;s less than we look at the 21 we go left because it&#8217;s less than 21</p>



<p>we go to the right because it&#8217;s greater than three we look at the six we go to the right</p>



<p>because it&#8217;s greater than six we go to the right because it&#8217;s greater than 11.</p>



<p>So a super cramped diagram.</p>



<p>I&#8217;m in hell.</p>



<p>I&#8217;m just going to move this slightly to the right because this is just awful.</p>



<p>And I&#8217;m going to try to make sure again that same depth nodes are at the same Y coordinate.</p>



<p>Let me fix that number real fast before I forget.</p>



<p>And put it as a 17.</p>



<p>And then do my connecting line.</p>



<p>Like that.</p>



<p>Okay.</p>



<p>I&#8217;m losing it.</p>



<p>The, uh, whoops, the 23, where is this going to go?</p>



<p>Is it 23?</p>



<p>Um, Hmm.</p>



<p>Hmm.</p>



<p>Oh, well, it&#8217;s going to be like left child of the 34 probably.</p>



<p>Okay.</p>



<p>Let me just, uh, look at the root node.</p>



<p>Okay.</p>



<p>23 belongs on the left of that.</p>



<p>Look at the 21, 23 belongs on the right of that.</p>



<p>Cause it&#8217;s greater than 21.</p>



<p>Look at the 72.</p>



<p>It belongs on the left.</p>



<p>it belongs on the left look at the 34 belongs on the left and then that&#8217;s going to be the new left</p>



<p>child okay so I&#8217;m going to duplicate one of these nodes and it&#8217;s going to be the new left child of</p>



<p>the 34 node that is awful but I guess we barely have enough room let me change that to a 23 and</p>



<p>then I&#8217;ll add my connecting line okay and now we&#8217;re ready to add the final value in our tree</p>



<p>to be? It&#8217;s going to be like left child of 11 maybe. So we look at the root node. Whoops,</p>



<p>forgot to move that arrow. We look at the root node. We can&#8217;t put it there. Nine belongs on the</p>



<p>left side of the root. So we go like that. Nine belongs on the left side of the 21. Oh, did I just</p>



<p>guess something wrong? No, no, no. I think I&#8217;m okay. Go to the left side of that. We look at</p>



<p>right side of three we look at the six nine belongs on the right side of the six we look at</p>



<p>the eleven nine belongs on the left side of eleven because it&#8217;s less than eleven so I&#8217;m just going to</p>



<p>duplicate this and it&#8217;s going to end up being the left side whoops nope that&#8217;s wrong hang on a second</p>



<p>let me oh come on man let me get this down it&#8217;s going to be the left child of eleven not the left</p>



<p>there and the diagram is a little messed up maybe I should try to rearrange this in a second</p>



<p>it the topology is correct but it&#8217;s harder to debug because you can see that one of the right</p>



<p>descendants of the six node is actually physically on its left side and that just makes it extra hard</p>



<p>to debug but for now we&#8217;ll say that we&#8217;re done adding stuff into the tree so maybe I can kind</p>



<p>I&#8217;m not going to change the actual topology.</p>



<p>I&#8217;m just going to like, you know, redraw this in a slightly nicer way.</p>



<p>So I can probably take this whole subtree and move it over to the left a little bit to make it a little cleaner.</p>



<p>Which will give me some room to move this subtree a little bit over to the right.</p>



<p>Am I still wearing my microphone? Yeah.</p>



<p>And then it&#8217;s a little bit cleaner.</p>



<p>Then I just have to redraw this line.</p>



<p>Whoops.</p>



<p>oops yeah just have to redraw this line and now i think we&#8217;re following the rules that i talked</p>



<p>about before where a good diagram has all the left descendants physically on the left side of</p>



<p>a given node so let&#8217;s see the six has everything on the right and everything i think we&#8217;re okay</p>



<p>i&#8217;m going to duplicate this real fast and now let&#8217;s verify that our tree is actually correct</p>



<p>So I said this in the last video when we built a tree, but you basically want to take like the input data set here and sort it.</p>



<p>And whatever sorted list you end up with, that&#8217;s what you should see when you scan your eyes from left to right.</p>



<p>Again, this is another good argument for drawing the diagram in a really good way.</p>



<p>All left descendants are physically on the left. All right descendants are physically on the right.</p>



<p>So another way that I could do this, besides I don&#8217;t really want to sort this list right now,</p>



<p>Just scan from left to right and make sure that I see increasing numbers</p>



<p>Or if you&#8217;ve decided to make a tree that supports duplicates, make sure that you see non-decreasing numbers</p>



<p>But I&#8217;m looking for an ascending list</p>



<p>Okay, so I&#8217;m gonna just like do little hashes here</p>



<p>One is the lowest number. That&#8217;s good. Then if I go to the right just a little bit</p>



<p>I see a three go to the right a little bit. I see a six that&#8217;s still increasing then I see a nine and then I see an 11</p>



<p>still been increasing go to the right a little bit more it&#8217;s a 21 go to the right a little bit more</p>



<p>it&#8217;s a 23 then it&#8217;s a 34 then it&#8217;s a 55 then it&#8217;s a 66 then it&#8217;s a 72 so far everything&#8217;s been</p>



<p>increasing and then from 72 to 88 and from 88 to 90. so the ordering of the numbers are correct</p>



<p>let me just make sure i actually have a binary search tree by the definition of a bst first it</p>



<p>crazy lines going off in some direction or like different symbols this is a</p>



<p>connected graph meaning I could probably find well I definitely could find a path</p>



<p>from any node to any other node if I just you know trace the edges so can the</p>



<p>9 find its way to the 90 yeah if we just kind of like go you know up this way and</p>



<p>follow the edges up to the 88 and then back down to the 90 so every single node</p>



<p>could do that it could find every single other node on the graph which means this</p>



<p>every single other node on the graph which means this is a connected graph so that&#8217;s good the next</p>



<p>thing is now that we have a connected graph do we have a tree so check for cycles uh can any start</p>



<p>node find its way back to itself in a path that does not repeat edges i don&#8217;t see that anywhere</p>



<p>in the tree so i think we have a valid tree let me get rid of that real fast so for example uh</p>



<p>Could we find a path that goes away from the 9 node and then comes back without repeating any edges?</p>



<p>I cannot because as soon as we go out to the 11,</p>



<p>later on we would have to use that same edge to come back down to the 9 and that would be repeating an edge.</p>



<p>So we just kind of check that for every single node.</p>



<p>We can&#8217;t find a cycle anywhere in this entire graph.</p>



<p>So this is an acyclic graph.</p>



<p>Okay, that means it&#8217;s a tree.</p>



<p>Is this a rooted tree?</p>



<p>ancestor to all other nodes and it&#8217;s that 88 node that&#8217;s the root node of the</p>



<p>entire tree every single node in the tree can say that 88 is its greatest</p>



<p>ancestor there&#8217;s no you know same leveled nodes at the very very very top okay so</p>



<p>this is a rooted tree now is it a binary tree yeah we look at every single node</p>



<p>and we can see that none of the nodes have more than two children they&#8217;ve all</p>



<p>this is a binary tree. And then when we, you know, we verified the numbers a second ago,</p>



<p>that means this is a binary search tree. So it satisfies all the properties of a binary search</p>



<p>tree. It doesn&#8217;t look very good. It&#8217;s kind of wonky, but it is valid. Remember this,</p>



<p>you know, a binary search tree just by itself is not a self-balancing tree,</p>



<p>which means you, you, you need to like not inject your human feelings into the tree while you&#8217;re</p>



<p>building it and start rearranging it to make it prettier. It wouldn&#8217;t be a valid binary search</p>



<p>if you tried to add special rules when you were creating it.</p>



<p>I don&#8217;t know.</p>



<p>If you imagine that maybe you, the human,</p>



<p>were changing the input data,</p>



<p>then I guess that&#8217;s valid.</p>



<p>But don&#8217;t imagine that the tree</p>



<p>is changing the data as you add it.</p>



<p>Anyway, so how fast is this tree?</p>



<p>Remember we said in a previous video</p>



<p>that a perfect binary search tree,</p>



<p>meaning perfectly balanced on every single node,</p>



<p>would be a log time tree.</p>



<p>It would be really, really fast to add and search</p>



<p>to add and search and even remove but this tree is definitely lopsided so this</p>



<p>is not a log tree the time complexity of a binary search tree actually is not</p>



<p>really log because the tree could just grow in any direction so in the worst</p>



<p>case scenario if you add the worst possible data you&#8217;d end up with a linear</p>



<p>time tree self balancing trees will be log time trees because they always</p>



<p>rearrange themselves to make sure that they&#8217;re balanced to a certain extent but</p>



<p>But, you know, as a binary search tree scales, it could just get slower and slower and slower.</p>



<p>So we wouldn&#8217;t be able to say that BSTs, binary search trees in general are log time.</p>



<p>We could pull up a calculator though and we could say, well, you know, what&#8217;s the height of this particular tree?</p>



<p>Let me just look at the depths real fast here.</p>



<p>What&#8217;s the height of this tree?</p>



<p>So the root node has a depth of zero and then one and then two and then three and then four.</p>



<p>drawing your tree in a nice pretty way where all the ranks are the same physically.</p>



<p>We just take the deepest node and we add one to it and we say that&#8217;s the height.</p>



<p>So the height of this tree is six.</p>



<p>Another way of looking at it is if we wanted to touch one of the deepest nodes,</p>



<p>how many nodes would we have to touch as we travel down through the tree?</p>



<p>So how many nodes would we have to touch to find, you know, the nine or the 17 or the 55?</p>



<p>one node the 88 two and let&#8217;s go to the left three four five six we&#8217;d have to touch six nodes</p>



<p>to get to the deepest node so that&#8217;s why we&#8217;re saying that&#8217;s another way that we&#8217;re justifying</p>



<p>that we say the height is six so the height of this tree is six which means in the worst case</p>



<p>scenario if we needed to search this tree again we&#8217;ll talk about actually searching in another</p>



<p>video but for now i can just promise you that if we were going to search this tree we could do it</p>



<p>going to search this tree we could do it in at most six uh examinations so even though we have</p>



<p>a lot of nodes here how many nodes do we actually have let me just double check this we have n</p>



<p>is equal to one two three four five six seven eight nine ten eleven twelve thirteen fourteen</p>



<p>we have fourteen nodes but at most we&#8217;d have to examine six nodes because this is a binary search</p>



<p>tree so it&#8217;s a lot faster than scanning the whole tree in linear time but it could be a lot faster</p>



<p>It could be a lot faster if the tree was better balanced.</p>



<p>That&#8217;s a topic for another day.</p>



<p>So for example, if we wanted to search for the number 55, let&#8217;s say we were just going</p>



<p>to search for 55, you know, we&#8217;d look at the 88.</p>



<p>Basically searching is pretty much the same as adding a node.</p>



<p>You just kind of go find where the node would belong.</p>



<p>And then if it&#8217;s there, then you found it.</p>



<p>And if not, then it&#8217;s not in there.</p>



<p>55 belongs on the left of 88, belongs on the right of 21, it belongs on the left of 72.</p>



<p>belongs on the left of 72, belongs on the right of 34, belongs on the left of 66, and there we</p>



<p>found it. Notice how we only did one, two, three, four, five, six examinations. So I&#8217;m going to talk</p>



<p>about big O and time complexities in another video, but long story short, the time complexity</p>



<p>of this particular tree, or actually any binary search tree, is always going to be O of H, no</p>



<p>imbalanced or perfectly balanced O of H so in the worst case scenario since H is 6 we&#8217;re going to have to touch H or 6 nodes</p>



<p>To search or add something or whatever if the tree was perfect. It would look more like log time. Let&#8217;s pull up that calculator real fast</p>



<p>Where the heck is my calculator? I think I like got sidetracked</p>



<p>so if I pull up a calculator here</p>



<p>and I typed in</p>



<p>log base 2 it&#8217;s base 2 because we only allow two children per node at most log</p>



<p>base 2 of the number of nodes in the tree so log base 2 of 14 if we get the</p>



<p>answer to that it says 3.8 which means the calculator is telling us that in a</p>



<p>log time tree we should not have to examine more than four nodes in order to</p>



<p>search the tree or add a brand new node but this is not a log tree because it is</p>



<p>totally imbalanced it&#8217;s kind of wonky it&#8217;s not it&#8217;s not perfect so it&#8217;s telling us in a perfect</p>



<p>tree we&#8217;d have to touch four nodes only but we clearly know we might have to touch six nodes in</p>



<p>the worst case so that i&#8217;m just trying to bring to your attention that the more imbalanced the tree is</p>



<p>the further its uh performance drifts away from log time which is a great argument</p>



<p>I think this is pretty much everything I wanted to talk about today.</p>



<p>I&#8217;m going to take a break and like, you know, eat some cookies and stuff.</p>



<p>But in a future video, we&#8217;re going to talk about inserting.</p>



<p>No, we already just did that literally right now.</p>



<p>We&#8217;re going to talk about searching through the tree.</p>



<p>We&#8217;re going to talk about removing nodes from the tree.</p>



<p>We&#8217;re going to talk about linear trees.</p>



<p>We&#8217;re going to talk about all the time complexities.</p>



<p>And then eventually we&#8217;ll move on to self-balancing trees.</p>



<p>on to self-balancing trees. So I hope you had fun watching this video. I hope you learned a little</p>



<p>bit of stuff and I&#8217;ll see you at a later date in time. I&#8217;m outie. Patowdy. Note to self, edit out</p>



<p>Patowdy. Hey everybody, thanks for watching this video again from the bottom of my heart. I really</p>



<p>hope you did learn something and have some fun if you could do me a please a small little favor</p>



<p>could you please subscribe and follow this channel or these videos or whatever it is you do on the</p>



<p>current social media website that you&#8217;re looking at right now it would really mean the world to me</p>



<p>and it&#8217;ll help make more videos and grow this community so we&#8217;ll be able to do more videos</p>



<p>longer videos better videos or just i&#8217;ll be able to keep making videos in general so please</p>



<p>and subscribe. You know, sometimes I&#8217;m sleeping in the middle of the night and I just wake up</p>



<p>because I know somebody subscribed or followed. It just wakes me up and I get filled with joy.</p>



<p>That&#8217;s exactly what happens every single time. So you could do it as a nice favor to me or you</p>



<p>could, you could troll me if you want to just wake me up in the middle of the night, just subscribe</p>



<p>and then I&#8217;ll, I&#8217;ll just wake up. I promise that&#8217;s what will happen. Also, uh, if you look at the</p>



<p>middle of the screen right now, you should see a QR code, which you can scan in order to go to the</p>



<p>we&#8217;re at the bottom of this video and it&#8217;ll take you to my main website where you can just kind of</p>



<p>like see all the videos i published and the services and tutorials and things that i offer</p>



<p>and all that good stuff and uh if you have a suggestion for uh uh clarifications or errata</p>



<p>or just future videos that you want to see please leave a comment or if you just want to say hey</p>



<p>what&#8217;s up what&#8217;s going on you know just send me a comment whatever i also wake up for those in the</p>



<p>wake up in a cold sweat and i&#8217;m like it would really it really mean the world to me i would</p>



<p>really appreciate it so again thank you so much for watching this video and um enjoy the cool music</p>



<p>as as i fade into the darkness which is coming for us all</p>



<p>Thank you.</p>
<p>The post <a href="https://www.NeuralLantern.com/binary-search-tree-insertion-tutorial-building-a-bst-from-scratch-step-by-step/">Binary Search Tree Insertion Tutorial: Building a BST from Scratch Step by Step</a> appeared first on <a href="https://www.NeuralLantern.com">NeuralLantern.com</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.NeuralLantern.com/binary-search-tree-insertion-tutorial-building-a-bst-from-scratch-step-by-step/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
