<?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>graph theory Archives - NeuralLantern.com</title>
	<atom:link href="https://www.NeuralLantern.com/tag/graph-theory/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.NeuralLantern.com/tag/graph-theory/</link>
	<description></description>
	<lastBuildDate>Sun, 13 Sep 2026 19:29:07 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.2</generator>

<image>
	<url>https://www.NeuralLantern.com/wp-content/uploads/2025/04/cropped-2025-04-04-Lantern-03-32x32.png</url>
	<title>graph theory Archives - NeuralLantern.com</title>
	<link>https://www.NeuralLantern.com/tag/graph-theory/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Directed Weighted Graph Edge List Representation</title>
		<link>https://www.NeuralLantern.com/directed-weighted-graph-edge-list-representation/</link>
					<comments>https://www.NeuralLantern.com/directed-weighted-graph-edge-list-representation/#respond</comments>
		
		<dc:creator><![CDATA[mike]]></dc:creator>
		<pubDate>Sun, 13 Sep 2026 19:29:05 +0000</pubDate>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Data Structures]]></category>
		<category><![CDATA[Graphs]]></category>
		<category><![CDATA[Videos]]></category>
		<category><![CDATA[adjacency]]></category>
		<category><![CDATA[algorithms]]></category>
		<category><![CDATA[computer science]]></category>
		<category><![CDATA[data structures]]></category>
		<category><![CDATA[directed graph]]></category>
		<category><![CDATA[directed weighted graph]]></category>
		<category><![CDATA[edge list]]></category>
		<category><![CDATA[graph representation]]></category>
		<category><![CDATA[graph theory]]></category>
		<category><![CDATA[graph tutorial]]></category>
		<category><![CDATA[index mapping]]></category>
		<category><![CDATA[nodes and edges]]></category>
		<category><![CDATA[vertex list]]></category>
		<category><![CDATA[weighted graph]]></category>
		<guid isPermaLink="false">https://www.NeuralLantern.com/?p=433</guid>

					<description><![CDATA[<p>A directed weighted graph can be stored as a pair of lists: every vertex in one list, and every edge as a three-part tuple of start node, end node, and weight. Replacing the node values with indexes into the vertex list lets you jump to those nodes in constant time after you find an edge.</p>
<p>The post <a href="https://www.NeuralLantern.com/directed-weighted-graph-edge-list-representation/">Directed Weighted Graph Edge List Representation</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="Directed Weighted Graph Edge List Representation" width="1380" height="776" src="https://www.youtube.com/embed/OOyWpB5Pijk?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 class="wp-block-paragraph">Learn how to represent a directed and weighted graph using an edge list.</p>



<p class="wp-block-paragraph">We start from a directed unweighted example, add weights to every edge, then store the graph as a tuple of a vertex list and an edge list. Each edge is a tuple of start node, end node, and weight. Order matters because the graph is directed.</p>



<p class="wp-block-paragraph">Then we convert node values to indexes so you can jump straight to a vertex in constant time instead of scanning the vertex list. That keeps edge scans closer to O(E) instead of O(E + V).</p>



<p class="wp-block-paragraph">This is part of a series covering all four combinations: directed vs undirected and weighted vs unweighted. Watch the earlier videos for basic graph terms and the other representations.</p>



<p class="wp-block-paragraph">Leave a comment if you want a topic covered next.</p>



<p class="wp-block-paragraph">00:00 Intro to directed weighted edge lists<br>01:05 Starting from the directed unweighted graph<br>01:35 Adding a weight to every edge<br>02:48 Graph as a vertex list plus edge list<br>03:35 Writing the vertex list<br>04:18 Node classes versus raw values<br>05:18 Writing directed weighted edges<br>05:45 Order matters on directed edges<br>06:38 Walking remaining outgoing edges<br>09:08 Why value-based edges scan slowly<br>10:29 Replacing node values with indexes<br>12:36 Constant-time jumps after an edge scan<br>14:13 Series wrap-up<br>14:45 Subscribe and outro</p>



<p class="wp-block-paragraph">=-=-=-=-=-=-=-=-=</p>



<p class="wp-block-paragraph">Thanks for watching!</p>



<p class="wp-block-paragraph">Find us on other social media here:</p>



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



<li>Twitter / X: <a href="https://x.com/NeuralLantern">https://x.com/NeuralLantern</a></li>



<li>Rumble: <a href="https://rumble.com/c/c-3696939">https://rumble.com/c/c-3696939</a></li>



<li>BitChute: <a href="https://www.bitchute.com/channel/pg1Pvv5dN4Gt">https://www.bitchute.com/channel/pg1Pvv5dN4Gt</a></li>



<li>Daily Motion: <a href="https://www.dailymotion.com/neurallantern">https://www.dailymotion.com/neurallantern</a></li>



<li>Minds: <a href="https://www.minds.com/neurallantern/">https://www.minds.com/neurallantern/</a></li>



<li>Odysee: <a href="https://odysee.com/@NeuralLantern:5">https://odysee.com/@NeuralLantern:5</a></li>
</ul>



<p class="wp-block-paragraph">Please show your support!</p>



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



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



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



<li>Subscribe to the Blog: <a href="https://www.NeuralLantern.com">https://www.NeuralLantern.com</a></li>



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



<p class="wp-block-paragraph">Hello there! Let&#8217;s talk about representing a directed and weighted</p>



<p class="wp-block-paragraph">graph inside your machine using an edge list representation.</p>



<p class="wp-block-paragraph">That&#8217;s a lot of words, a lot of words. Okay, so I hope you watched my previous videos. You didn&#8217;t</p>



<p class="wp-block-paragraph">necessarily need to watch the previous three where we talked about edge list</p>



<p class="wp-block-paragraph">representation.</p>



<p class="wp-block-paragraph">where we talked about edgeless representation on the other types of graphs we&#8217;re doing a directed</p>



<p class="wp-block-paragraph">versus uh undirected and weighted versus unweighted and all four combinations of those</p>



<p class="wp-block-paragraph">so uh you don&#8217;t need to watch those others if you&#8217;re just only interested in this but it&#8217;s</p>



<p class="wp-block-paragraph">probably a good idea if you watch my other graph videos because we talk about basic graph</p>



<p class="wp-block-paragraph">terminology and like you know what is a graph and stuff like that but for now we&#8217;re just going to</p>



<p class="wp-block-paragraph">continue um the screenshot you&#8217;re looking at right now was the last part of the last video where we</p>



<p class="wp-block-paragraph">Thank you.</p>



<p class="wp-block-paragraph">the last part of the last video where we did a directed unweighted graph so I&#8217;m</p>



<p class="wp-block-paragraph">gonna duplicate this real fast and I&#8217;m gonna start modifying it so we can</p>



<p class="wp-block-paragraph">basically just move on with our lives so this is gonna be directed and also</p>



<p class="wp-block-paragraph">weighted then I&#8217;m gonna erase a whole bunch of other stuff because it&#8217;s fun to</p>



<p class="wp-block-paragraph">draw again I don&#8217;t know why but it is I like to do my drawings get that and then</p>



<p class="wp-block-paragraph">And I&#8217;m going to get rid of that stuff.</p>



<p class="wp-block-paragraph">Okay.</p>



<p class="wp-block-paragraph">that stuff okay and i&#8217;ll get rid of this because i&#8217;d like to draw it okay i probably should have</p>



<p class="wp-block-paragraph">gotten rid of it first so i guess the real first thing that i&#8217;m going to do after erasing all that</p>



<p class="wp-block-paragraph">stuff is add weights to all the edges remember this has to be a weighted graph so this particular</p>



<p class="wp-block-paragraph">graph you&#8217;re looking at right now is directed and unweighted so we have to add weights to all of</p>



<p class="wp-block-paragraph">the edges in my previous videos we talked about what is the meaning of weights you know these</p>



<p class="wp-block-paragraph">could be a cost these could be like some property like in a video game</p>



<p class="wp-block-paragraph">property like in a video game uh whatever you want them to mean uh these could even be classes</p>



<p class="wp-block-paragraph">with like complicated values um but for now i&#8217;m going to say i don&#8217;t know maybe this is an airport</p>



<p class="wp-block-paragraph">map and the weights are how much gas it takes to fly from one city to another maybe a node is a</p>



<p class="wp-block-paragraph">city number six and city number 12 you want to fly between them it&#8217;s like five million jillion</p>



<p class="wp-block-paragraph">gallons of gas so let me just take a look real fast and make sure that i&#8217;m not forgetting</p>



<p class="wp-block-paragraph">I mean, any edge.</p>



<p class="wp-block-paragraph">getting any edge every single edge should have a weight i think there were nine edges here one two</p>



<p class="wp-block-paragraph">three four five six seven eight nine so i should see nine weights one two three four five six seven</p>



<p class="wp-block-paragraph">eight nine okay we&#8217;re now ready to start representing this and what&#8217;s going on with</p>



<p class="wp-block-paragraph">this computer okay the first thing uh that we talk about in all of these you know recent related</p>



<p class="wp-block-paragraph">videos is that in an edge list representation we&#8217;ll say</p>



<p class="wp-block-paragraph">edge list representation, we&#8217;ll say that our graph is a tuple, meaning just like a collection of some</p>



<p class="wp-block-paragraph">things. A tuple where the first item in the tuple is a vertex list or a node list, and the second</p>



<p class="wp-block-paragraph">item is an edge list. Again, in previous videos, we talked about representing paths using nodes or</p>



<p class="wp-block-paragraph">using edges. So the edge list path is going to come back to haunt us where we do our edge list</p>



<p class="wp-block-paragraph">graph representation, which is different than an edge list path.</p>



<p class="wp-block-paragraph">path. So how do we do our vertex list? That&#8217;s going to be pretty easy for this diagram.</p>



<p class="wp-block-paragraph">I&#8217;m going to say that V is equal to, oh, it&#8217;s pink. Let me change the color to be more serious.</p>



<p class="wp-block-paragraph">Okay. The vertex list is going to be a collection of just all the nodes, just naming all the nodes</p>



<p class="wp-block-paragraph">or having all the nodes. I&#8217;m going to say it&#8217;s a vertex list or a node list, but really you</p>



<p class="wp-block-paragraph">probably want this to be a vector I&#8217;ve been saying that recently because it&#8217;s faster to</p>



<p class="wp-block-paragraph">because it&#8217;s faster to jump to a particular index in a vector</p>



<p class="wp-block-paragraph">than it is in an actual linked list or some other list-like data structure.</p>



<p class="wp-block-paragraph">So we&#8217;ve got a vertex list.</p>



<p class="wp-block-paragraph">I&#8217;m just going to name all the nodes.</p>



<p class="wp-block-paragraph">So for me particularly, I like to go from left to right.</p>



<p class="wp-block-paragraph">You can sort them, you can do whatever you want.</p>



<p class="wp-block-paragraph">They just need to all be in there.</p>



<p class="wp-block-paragraph">So I&#8217;m just going to say every node that we see in the graph</p>



<p class="wp-block-paragraph">is going to end up in this vertex list.</p>



<p class="wp-block-paragraph">So we&#8217;ve got 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6.</p>



<p class="wp-block-paragraph">So we&#8217;ve got all the nodes in there.</p>



<p class="wp-block-paragraph">another point that I&#8217;ve been making in the in these recent videos is that in real life in your</p>



<p class="wp-block-paragraph">code in your in your computer you don&#8217;t really want to just have this value three here you don&#8217;t</p>



<p class="wp-block-paragraph">want to have this 12 value here that the 12 value that&#8217;s just the value that the node holds I mean</p>



<p class="wp-block-paragraph">if you want everything to be really fast maybe you know keep it bare bones but for me I like to</p>



<p class="wp-block-paragraph">have a full node class a full vertex class and make an instance of it so I can add a whole bunch</p>



<p class="wp-block-paragraph">of custom properties and function</p>



<p class="wp-block-paragraph">bunch of custom properties and functionality and other stuff onto my node so that that means i</p>



<p class="wp-block-paragraph">couldn&#8217;t really put an integer there i would have to put a full node so keep in mind for yourself</p>



<p class="wp-block-paragraph">you probably want to try it both ways but um you probably want to want an instance of a node class</p>



<p class="wp-block-paragraph">and maybe stick the instance right there in the vector or maybe make a smart pointer and so like</p>



<p class="wp-block-paragraph">you allocate you know a new pointer of an instance of the class or it&#8217;s a raw pointer it&#8217;s a smart</p>



<p class="wp-block-paragraph">point or whatever so just keep in mind this diagram is</p>



<p class="wp-block-paragraph">So just keep in mind, this diagram is more simple than your code, but we&#8217;re just diagramming</p>



<p class="wp-block-paragraph">today.</p>



<p class="wp-block-paragraph">Anyway, so we put all the nodes in there.</p>



<p class="wp-block-paragraph">The next thing I need to do is represent the edges.</p>



<p class="wp-block-paragraph">So I&#8217;m going to put E is equal to another list.</p>



<p class="wp-block-paragraph">And this probably does need to be a linked list or a list like data structure and not</p>



<p class="wp-block-paragraph">a vector.</p>



<p class="wp-block-paragraph">There&#8217;s not much point in jumping to an index.</p>



<p class="wp-block-paragraph">I don&#8217;t know.</p>



<p class="wp-block-paragraph">You could probably come up with one.</p>



<p class="wp-block-paragraph">But anyway, so the edge list is going to be a list of tuples that describe one edge at</p>



<p class="wp-block-paragraph">a time.</p>



<p class="wp-block-paragraph">at a time so every little parenthesis that i put here that&#8217;s going to represent one edge so again</p>



<p class="wp-block-paragraph">for me i like to go from left to right i&#8217;m going to start on the left node and i&#8217;m going to say</p>



<p class="wp-block-paragraph">that the start node is three and remember this is a directed graph which means the order if you</p>



<p class="wp-block-paragraph">looked at my previous videos the hang on the order of the nodes actually matters a lot like i can put</p>



<p class="wp-block-paragraph">3 and 13 but i cannot put 13 comma 3 because the first item in the tuple is supposed to be the</p>



<p class="wp-block-paragraph">The first item in the tuple is supposed to be the starting node.</p>



<p class="wp-block-paragraph">And if you see, I only have like an edge going from 3 to 13.</p>



<p class="wp-block-paragraph">I don&#8217;t have one going from 13 to 3.</p>



<p class="wp-block-paragraph">So 13 comma 3 would be invalid.</p>



<p class="wp-block-paragraph">It would be totally bad.</p>



<p class="wp-block-paragraph">So I&#8217;m going to say the 3 goes out to the 13.</p>



<p class="wp-block-paragraph">So the 3 comes first and the 13 is second.</p>



<p class="wp-block-paragraph">And then I have to describe how much it costs.</p>



<p class="wp-block-paragraph">So that&#8217;s the third item in that one particular tuple.</p>



<p class="wp-block-paragraph">It&#8217;s going to be a 1 because the cost of that one particular edge is 1.</p>



<p class="wp-block-paragraph">one gasoline one</p>



<p class="wp-block-paragraph">one millisecond delay one time whatever so then the next item is going to be where else does the</p>



<p class="wp-block-paragraph">three go to the three doesn&#8217;t go anywhere else so we&#8217;re done representing the three at least as a</p>



<p class="wp-block-paragraph">start node so next up uh i&#8217;m going to look at the 13 where does the 13 go to it goes to the six it</p>



<p class="wp-block-paragraph">doesn&#8217;t go to the three the three goes to 13 but this the 13 doesn&#8217;t go to the three so 13 goes to</p>



<p class="wp-block-paragraph">six and it costs six because that&#8217;s the cost of the edge there&#8217;s two sixes here</p>



<p class="wp-block-paragraph">the edge. There&#8217;s two 6s here, a little confusing, but that&#8217;s because one is a node and one is a</p>



<p class="wp-block-paragraph">weight. The 13 does not go out anywhere else, so we&#8217;re done with the 13. I like to make, you know,</p>



<p class="wp-block-paragraph">different rows for every single start node. You don&#8217;t have to do that. Next up, I&#8217;m going to look</p>



<p class="wp-block-paragraph">at the 6. The 6 does not go out to the 13. The 6 does not go out to the 18. There is a connection</p>



<p class="wp-block-paragraph">there, but it&#8217;s going in the other direction. The 6 goes to the 12 and also to the 15. So the 6 goes</p>



<p class="wp-block-paragraph">to the 12, and that cost us $5,000.</p>



<p class="wp-block-paragraph">to the 12 and that cost us five because that was the weight we assigned and the six also goes to</p>



<p class="wp-block-paragraph">the 15 with a cost of i think i just wrote seven in a weird way um so we go from six to fifteen it</p>



<p class="wp-block-paragraph">costs us seven and then we&#8217;re done looking at the outgoing edges of these six let me just double</p>



<p class="wp-block-paragraph">check out out yes now we&#8217;re ready to move on to the uh the 12 node the 12 node has one outgoing</p>



<p class="wp-block-paragraph">connection it goes out to the three did i get that wrong in the last video leave a comment</p>



<p class="wp-block-paragraph">Did I get that wrong in the last video?</p>



<p class="wp-block-paragraph">Leave a comment.</p>



<p class="wp-block-paragraph">I don&#8217;t know.</p>



<p class="wp-block-paragraph">And then we&#8217;re done with the 12 node.</p>



<p class="wp-block-paragraph">Now we look at the 15 node.</p>



<p class="wp-block-paragraph">Oh, that&#8217;s why I had that feeling,</p>



<p class="wp-block-paragraph">because the 15 didn&#8217;t go anywhere.</p>



<p class="wp-block-paragraph">15 has incoming connections, but no outgoing connections,</p>



<p class="wp-block-paragraph">so we actually can&#8217;t write it down here.</p>



<p class="wp-block-paragraph">There&#8217;s no need.</p>



<p class="wp-block-paragraph">Then we look at the 18 node.</p>



<p class="wp-block-paragraph">The 18 has outgoing connections to four other nodes.</p>



<p class="wp-block-paragraph">To the three, with a cost of three.</p>



<p class="wp-block-paragraph">Am I mind-tripping myself when I&#8217;m doing these duplicates?</p>



<p class="wp-block-paragraph">18 also goes out to the 6 with the cost of 8.</p>



<p class="wp-block-paragraph">Didn&#8217;t trick myself that time.</p>



<p class="wp-block-paragraph">The 18 also goes out to the 12 with the cost of 2.</p>



<p class="wp-block-paragraph">And then the 18 also goes out to 15 with the cost of 9.</p>



<p class="wp-block-paragraph">I just realized recently it&#8217;s a good idea to make faces at the camera for emotional thumbnails.</p>



<p class="wp-block-paragraph">I don&#8217;t know if you&#8217;ve picked up on that yet, but yeah.</p>



<p class="wp-block-paragraph">if you&#8217;ve picked up on that yet but yeah so let me just double check that i&#8217;ve got like nine edges</p>



<p class="wp-block-paragraph">and nine entries one two three four five six seven eight nine so i think i probably did it all right</p>



<p class="wp-block-paragraph">now there&#8217;s a problem um i&#8217;ve been talking about this in in the recent videos there&#8217;s a problem</p>



<p class="wp-block-paragraph">with this type of representation what if you are scanning through the edge list and you&#8217;re like</p>



<p class="wp-block-paragraph">well i&#8217;m scanning this edge and that edge and that edge and that edge and that edge and then i come</p>



<p class="wp-block-paragraph">to the 18-6 edge</p>



<p class="wp-block-paragraph">and I think, well now I found</p>



<p class="wp-block-paragraph">and i think well now i found some edge that was interesting for whatever reason</p>



<p class="wp-block-paragraph">maybe if i was scanning or doing some kind of like a operation that might have costed linear time so</p>



<p class="wp-block-paragraph">you don&#8217;t have to know about this uh this is in other videos but basically it&#8217;s not incredibly</p>



<p class="wp-block-paragraph">scalable it&#8217;s not incredibly fast it is technically scalable just not incredible</p>



<p class="wp-block-paragraph">linear time based on the number of edges so that kind of sucks because if i wanted to do something</p>



<p class="wp-block-paragraph">with those nodes with the 18 and</p>



<p class="wp-block-paragraph">with those nodes with the 18 and the six node i would then have to do another linear scan</p>



<p class="wp-block-paragraph">to find each node i&#8217;d have to go into my vertex list and i&#8217;d have to say well where the heck are</p>



<p class="wp-block-paragraph">those things where&#8217;s 18 nope nope nope nope nope uh found the 18 and then there&#8217;s another scan</p>



<p class="wp-block-paragraph">to find the six so really this is going to end up being um linear time based on the number of edges</p>



<p class="wp-block-paragraph">and also the number of vertices so that&#8217;s a little bit slower not</p>



<p class="wp-block-paragraph">a little bit slower not too great the upgrade that we&#8217;re going to do which we&#8217;ve been doing</p>



<p class="wp-block-paragraph">in all the other videos of of these recent edge list representations is i&#8217;m going to</p>



<p class="wp-block-paragraph">first i&#8217;m going to duplicate the vertex list like this</p>



<p class="wp-block-paragraph">and then i&#8217;m going to show you that each node each vertex has an index so i&#8217;m going to say</p>



<p class="wp-block-paragraph">one this is index two it&#8217;s index three when i type too hard i think my hand shakes the table</p>



<p class="wp-block-paragraph">that kind of sucks i need shock absorbers for my galumpiness oh so we have uh an index for every</p>



<p class="wp-block-paragraph">single vertex what if we uh what if we copy pasted the edge list over here on the left</p>



<p class="wp-block-paragraph">um what&#8217;s going on it&#8217;s not oh there it is dumb okay what if we copy pasted it and then we</p>



<p class="wp-block-paragraph">converted all of the values.</p>



<p class="wp-block-paragraph">at all of the values uh or um i guess you maybe on the left side if you if you&#8217;re doing this in</p>



<p class="wp-block-paragraph">the code you might put pointers instead of values so we&#8217;ll just say that we&#8217;ll convert the pointers</p>



<p class="wp-block-paragraph">or these values into indexes so this first tuple we&#8217;re describing the edge that goes between 3 and</p>



<p class="wp-block-paragraph">13 with the cost of 1 3 is sitting at index 0 in the vertex list so i&#8217;m going to change it to a 0</p>



<p class="wp-block-paragraph">13 is sitting at index 1 I&#8217;m going to leave the weight alone and</p>



<p class="wp-block-paragraph">I&#8217;m going to leave the weight alone, and then I&#8217;m just going to convert every other tuple</p>



<p class="wp-block-paragraph">to indexes. So the 13 node, that&#8217;s sitting at index 1. The 6 node is sitting at index 2,</p>



<p class="wp-block-paragraph">leave the weight alone. The 6 node is at index 2, the 12 node is at index 3.</p>



<p class="wp-block-paragraph">The 6 node again is at index 2. The 15 node is at index 4, again leave the weights alone.</p>



<p class="wp-block-paragraph">The 12 node is sitting at index 3, the 3 node is sitting at index 0, leave the weight alone.</p>



<p class="wp-block-paragraph">The 18 node is sitting at index 5.</p>



<p class="wp-block-paragraph">The 3 node is sitting at index 0.</p>



<p class="wp-block-paragraph">I think I&#8217;m going too fast.</p>



<p class="wp-block-paragraph">I&#8217;m probably going to screw something up.</p>



<p class="wp-block-paragraph">We&#8217;ve got index 5 there for the 18, and then 6 is index 2.</p>



<p class="wp-block-paragraph">18 is index 5.</p>



<p class="wp-block-paragraph">12 is index 3.</p>



<p class="wp-block-paragraph">18 is index 5.</p>



<p class="wp-block-paragraph">15 is index 4.</p>



<p class="wp-block-paragraph">So all I did was just convert every node value or pointer, if it&#8217;s in your code, to an index that references the vertex list.</p>



<p class="wp-block-paragraph">the vertex list why would I want to do this okay so like last time we said we</p>



<p class="wp-block-paragraph">would do O of E it would be linear time based on the number of edges if we&#8217;re</p>



<p class="wp-block-paragraph">performing some sort of a search or examination of all the edges so we have</p>



<p class="wp-block-paragraph">to like scan all the edges and then eventually we come to something we&#8217;re</p>



<p class="wp-block-paragraph">interested in maybe we realize oh that&#8217;s that&#8217;s a special edge we want to see</p>



<p class="wp-block-paragraph">what&#8217;s going on there maybe we want to grab those nodes and extract more</p>



<p class="wp-block-paragraph">information from them or modify them or do something to them this representation</p>



<p class="wp-block-paragraph">tells us</p>



<p class="wp-block-paragraph">this representation tells us exactly where to go,</p>



<p class="wp-block-paragraph">because this 5 is an index, it&#8217;s not a node value.</p>



<p class="wp-block-paragraph">Same thing for the 2.</p>



<p class="wp-block-paragraph">So index 5 gives us the 18,</p>



<p class="wp-block-paragraph">and index 2 gives us the 6.</p>



<p class="wp-block-paragraph">Notice how we still actually were looking for the 18 and 6 nodes,</p>



<p class="wp-block-paragraph">like we were in the previous, I guess, representation.</p>



<p class="wp-block-paragraph">So now, instead of scanning the vertex list,</p>



<p class="wp-block-paragraph">we can just jump directly to an index,</p>



<p class="wp-block-paragraph">jump directly to an index and you know remember like if you&#8217;re using an array or a vector it&#8217;s</p>



<p class="wp-block-paragraph">going to be constant time to jump to an index it&#8217;s like very very fast it&#8217;s the holy grail</p>



<p class="wp-block-paragraph">of time complexities so it&#8217;s really going to be something like o of e plus c or one or whatever</p>



<p class="wp-block-paragraph">you want to call it but it&#8217;s going to reduce to just o of e so it&#8217;s going to be a little bit</p>



<p class="wp-block-paragraph">faster notice how you know this one is going to take more time than that one maybe i&#8217;ll put it in</p>



<p class="wp-block-paragraph">red to make the</p>



<p class="wp-block-paragraph">it in red to make the the more than the greater than operator feel feel bad and evil but anyway</p>



<p class="wp-block-paragraph">this is how you do edgeless representation if you&#8217;re interested in the in all four uh types</p>



<p class="wp-block-paragraph">of graphs being represented with an edgeless representation check out all my other videos</p>



<p class="wp-block-paragraph">please leave a comment with ideas for stuff you want me to go over but i think i&#8217;m finished with</p>



<p class="wp-block-paragraph">this video it&#8217;s been 15 minutes already i don&#8217;t remember what i forgot to say but i guess we&#8217;re</p>



<p class="wp-block-paragraph">done now thank you so much for watching</p>



<p class="wp-block-paragraph">we&#8217;re done now thank you so much for watching i hope you learned a little bit of stuff and had a</p>



<p class="wp-block-paragraph">little bit of fun i&#8217;ll see you in the next video i&#8217;m gonna get my gear i&#8217;m just kidding i&#8217;m gonna</p>



<p class="wp-block-paragraph">eat a bunch of cookies i&#8217;m just kidding i shouldn&#8217;t do that but i probably will</p>



<p class="wp-block-paragraph">hey everybody thanks for watching this video again from the bottom of my heart i really</p>



<p class="wp-block-paragraph">appreciate it i do hope you did learn something and have some fun uh if you could do me a please</p>



<p class="wp-block-paragraph">a small little favor could you please subscribe and follow</p>



<p class="wp-block-paragraph">subscribe and follow this channel or these videos or whatever it is you do on</p>



<p class="wp-block-paragraph">the current social media website that you&#8217;re looking at right now it would</p>



<p class="wp-block-paragraph">really mean the world to me and it&#8217;ll help make more videos and grow this</p>



<p class="wp-block-paragraph">community so we&#8217;ll be able to do more videos longer videos better videos or</p>



<p class="wp-block-paragraph">just I&#8217;ll be able to keep making videos in general so please do do me a kindness</p>



<p class="wp-block-paragraph">and and subscribe you know sometimes I&#8217;m sleeping in the middle of the night and</p>



<p class="wp-block-paragraph">I just wake up because I know somebody subscribed or followed it just wakes me</p>



<p class="wp-block-paragraph">up and I could feel</p>



<p class="wp-block-paragraph">followed it just wakes me up and i get filled with joy that&#8217;s exactly what happens every single time</p>



<p class="wp-block-paragraph">so you could do it as a nice favor to me or you could you could troll me if you want to just wake</p>



<p class="wp-block-paragraph">me up in the middle of the night just subscribe and then i&#8217;ll i&#8217;ll just wake up i promise that&#8217;s</p>



<p class="wp-block-paragraph">what will happen also uh if you look at the middle of the screen right now you should see a qr code</p>



<p class="wp-block-paragraph">which you can scan in order to go to the website which i think is also named somewhere at the</p>



<p class="wp-block-paragraph">bottom of this video and it&#8217;ll take you to my main website where you can just kind of like see</p>



<p class="wp-block-paragraph">all the videos I published, and the services, and</p>



<p class="wp-block-paragraph">I published and the services and tutorials and things that I offer and all that good stuff and</p>



<p class="wp-block-paragraph">If you have a suggestion for</p>



<p class="wp-block-paragraph">Clarifications or errata or just future videos that you want to see please leave a comment or if you just want to say hey</p>



<p class="wp-block-paragraph">What&#8217;s up? What&#8217;s going on? You know, just send me a comment, whatever</p>



<p class="wp-block-paragraph">I also wake up for those in the middle of the night. I get I wake up in a cold sweat. I&#8217;m like this</p>



<p class="wp-block-paragraph">It would really it really mean the world to me. I would really appreciate it. So again, thank you</p>



<p class="wp-block-paragraph">it. So again, thank you so much for watching this video and, um, enjoy the cool music as,</p>



<p class="wp-block-paragraph">as I fade into the darkness, which is coming for us all.</p>



<p class="wp-block-paragraph">ご視聴ありがとうございました</p>



<p class="wp-block-paragraph">Teksting av Nicolai Winther</p>



<p class="wp-block-paragraph">Hey there!</p>
<p>The post <a href="https://www.NeuralLantern.com/directed-weighted-graph-edge-list-representation/">Directed Weighted Graph Edge List Representation</a> appeared first on <a href="https://www.NeuralLantern.com">NeuralLantern.com</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.NeuralLantern.com/directed-weighted-graph-edge-list-representation/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to Represent Undirected Weighted Graphs Using Edge Lists</title>
		<link>https://www.NeuralLantern.com/how-to-represent-undirected-weighted-graphs-using-edge-lists/</link>
					<comments>https://www.NeuralLantern.com/how-to-represent-undirected-weighted-graphs-using-edge-lists/#respond</comments>
		
		<dc:creator><![CDATA[mike]]></dc:creator>
		<pubDate>Wed, 26 Aug 2026 17:23:28 +0000</pubDate>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Data Structures]]></category>
		<category><![CDATA[Graphs]]></category>
		<category><![CDATA[Videos]]></category>
		<category><![CDATA[big o complexity]]></category>
		<category><![CDATA[computer science]]></category>
		<category><![CDATA[constant time lookup]]></category>
		<category><![CDATA[data structures]]></category>
		<category><![CDATA[edge list]]></category>
		<category><![CDATA[edge list representation]]></category>
		<category><![CDATA[graph algorithms]]></category>
		<category><![CDATA[graph representation]]></category>
		<category><![CDATA[graph theory]]></category>
		<category><![CDATA[node index]]></category>
		<category><![CDATA[programming graphs]]></category>
		<category><![CDATA[undirected graphs]]></category>
		<category><![CDATA[undirected weighted graph]]></category>
		<category><![CDATA[vertex list]]></category>
		<category><![CDATA[weighted graphs]]></category>
		<guid isPermaLink="false">https://www.NeuralLantern.com/?p=428</guid>

					<description><![CDATA[<p>Learn the edge list representation for undirected weighted graphs. Build a vertex list and an edge list of triples that store both endpoints and the weight of each edge. Convert the list to use indexes so node lookups become constant time when the vertices are stored in a vector or array. This approach keeps each undirected edge only once and improves the speed of operations that need both edges and nodes.</p>
<p>The post <a href="https://www.NeuralLantern.com/how-to-represent-undirected-weighted-graphs-using-edge-lists/">How to Represent Undirected Weighted Graphs Using Edge Lists</a> appeared first on <a href="https://www.NeuralLantern.com">NeuralLantern.com</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">In the last video we talked about representing an unweighted and undirected graph using the edge list representation inside your machine. Now let&#8217;s talk about how to do that exact same thing with undirected weighted graphs.</p>



<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="How to Represent Undirected Weighted Graphs Using Edge Lists" width="1380" height="776" src="https://www.youtube.com/embed/p1sD8ZQxFgg?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 class="wp-block-paragraph">We start from the previous diagram and add weight costs on every single edge. The graph is a tuple consisting of a vertex list and an edge list. Vertices are listed from left to right. Edges are stored as triples with starting node, ending node, and weight.</p>



<p class="wp-block-paragraph">We build the edge list by scanning nodes left to right so each undirected edge appears only once. Then we convert the representation to use indexes instead of node values. This lets you jump to any node in constant time when using a vector or array for the vertex list.</p>



<p class="wp-block-paragraph">This makes operations on edges and nodes much faster than linear scans for both. Next up: directed graphs, both unweighted and weighted.</p>



<p class="wp-block-paragraph">0:00 Introduction to Weighted Graphs<br>1:00 Adding Edge Weights<br>3:16 Creating the Vertex List<br>5:19 Building the Edge List<br>10:34 Completing the Value-Based List<br>10:44 Why Value-Based Is Slow<br>13:04 Converting to Index-Based<br>15:29 Benefits of Index Lookups<br>17:49 Wrap-Up and Next Videos<br>18:22 Thank You and Outro</p>



<p class="wp-block-paragraph">=-=-=-=-=-=-=-=-=</p>



<p class="wp-block-paragraph">Thanks for watching!</p>



<p class="wp-block-paragraph">Find us on other social media here:</p>



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



<li>Twitter / X: <a href="https://x.com/NeuralLantern">https://x.com/NeuralLantern</a></li>



<li>Rumble: <a href="https://rumble.com/c/c-3696939">https://rumble.com/c/c-3696939</a></li>



<li>BitChute: <a href="https://www.bitchute.com/channel/pg1Pvv5dN4Gt">https://www.bitchute.com/channel/pg1Pvv5dN4Gt</a></li>



<li>Daily Motion: <a href="https://www.dailymotion.com/neurallantern">https://www.dailymotion.com/neurallantern</a></li>



<li>Minds: <a href="https://www.minds.com/neurallantern/">https://www.minds.com/neurallantern/</a></li>



<li>Odysee: <a href="https://odysee.com/@NeuralLantern:5">https://odysee.com/@NeuralLantern:5</a></li>
</ul>



<p class="wp-block-paragraph">Please show your support!</p>



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



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



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



<li>Subscribe to the Blog: <a href="https://www.NeuralLantern.com">https://www.NeuralLantern.com</a></li>



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



<p class="wp-block-paragraph">Hey there! Hello there. Hey there. In the last video we talked about representing</p>



<p class="wp-block-paragraph">an unweighted and undirected graph using the edge list representation inside your</p>



<p class="wp-block-paragraph">machine. Now let&#8217;s talk about how to do that exact same thing with undirected</p>



<p class="wp-block-paragraph">weighted graphs.</p>



<p class="wp-block-paragraph">seeing on the screen right now is basically the last diagram that I drew on my previous video</p>



<p class="wp-block-paragraph">where we talked about how to represent unweighted undirected graphs in the machine. You don&#8217;t</p>



<p class="wp-block-paragraph">necessarily need to watch that video to understand this video but you probably want to watch a few</p>



<p class="wp-block-paragraph">of my other previous graph videos to know the basics of graphs and edge lists and edge-based</p>



<p class="wp-block-paragraph">paths and node-based paths and all that stuff. So for now I&#8217;m just going to continue from this</p>



<p class="wp-block-paragraph">document. So let&#8217;s see, I&#8217;m going to duplicate</p>



<p class="wp-block-paragraph">I&#8217;m going to duplicate this real fast I am going to just kind of modify the captions here because</p>



<p class="wp-block-paragraph">we&#8217;re not going to do unweighted anywhere we&#8217;re going to say a weighted undirected graph did I</p>



<p class="wp-block-paragraph">get that backwards I think sometimes people say undirected and then the weighted part after so</p>



<p class="wp-block-paragraph">I&#8217;m just going to I&#8217;m just going to change it so it&#8217;s still undirected which means the edges don&#8217;t</p>



<p class="wp-block-paragraph">have arrows so that&#8217;s fine but it&#8217;s going to be weighted now which means I have to assign a cost</p>



<p class="wp-block-paragraph">of traveling along every single edge.</p>



<p class="wp-block-paragraph">So I am going to just</p>



<p class="wp-block-paragraph">so i am going to just sort of like erase a bunch of this stuff real fast erase these notations</p>



<p class="wp-block-paragraph">uh you know what i&#8217;m going to erase all of this because i want you to you know see it</p>



<p class="wp-block-paragraph">from start to finish okay so now i&#8217;m going to add weight costs on every single edge</p>



<p class="wp-block-paragraph">um in the last video what i mentioned is that the the edge list representation of a graph in</p>



<p class="wp-block-paragraph">the machine uh is basically your graph is a tuple that&#8217;s the orange you know marking</p>



<p class="wp-block-paragraph">a tuple that&#8217;s the orange you know markings up here your graph is a tuple where the tuple consists</p>



<p class="wp-block-paragraph">of a vertex list and also an edge list so we&#8217;ll do that from scratch together again but um let</p>



<p class="wp-block-paragraph">me get the weights on there first what color do you want i don&#8217;t know i&#8217;m going to put arbitrary</p>



<p class="wp-block-paragraph">numbers on all the edges just to say that every edge has a cost remember in a graph when you</p>



<p class="wp-block-paragraph">travel along an edge if the edge has a weight then you consider that weight to be part of the cost</p>



<p class="wp-block-paragraph">usually of traveling there so like if this was a network diagram</p>



<p class="wp-block-paragraph">traveling there so like if this was a network diagram maybe these weights represent pings or</p>



<p class="wp-block-paragraph">lags or bandwidth cost or something like that if this is like an airport diagram maybe the weights</p>



<p class="wp-block-paragraph">represent gasoline or time or something like that so i&#8217;m going to do like four there we can repeat</p>



<p class="wp-block-paragraph">weights if we really want to i&#8217;m going to line this up a little bit better that 12 looks gross</p>



<p class="wp-block-paragraph">okay i think we&#8217;re okay now i have 14 all right did i forget anything raise your hand if i forgot</p>



<p class="wp-block-paragraph">something</p>



<p class="wp-block-paragraph">raise your hand if i forgot something oh i forgot okay did you raise your hand okay</p>



<p class="wp-block-paragraph">i&#8217;m going to do the 13 and 6 uh let&#8217;s just put a 2 weight there you could put ones everywhere</p>



<p class="wp-block-paragraph">if you wanted to i mean any any number is fine um also in an unweighted graph you kind of can</p>



<p class="wp-block-paragraph">consider the number of hops to be a path cost which means you can kind of consider every uh</p>



<p class="wp-block-paragraph">edge to just have a weight of one but for now we&#8217;re just gonna say this is the weighted graph</p>



<p class="wp-block-paragraph">Okay, so the first&#8230;</p>



<p class="wp-block-paragraph">okay so the first thing we need to do uh after that is make a vertex list so our vertex list</p>



<p class="wp-block-paragraph">is just going to be a list of all of our vertices all of our nodes in the graph</p>



<p class="wp-block-paragraph">how do we list them so for starters like we usually say vertex list but for me personally</p>



<p class="wp-block-paragraph">this this particular data structure just that we&#8217;re going to type up on the bottom</p>



<p class="wp-block-paragraph">i usually like to consider that a vector or an array at least because you can jump into a</p>



<p class="wp-block-paragraph">Thank you.</p>



<p class="wp-block-paragraph">uh because you can jump into a specific index in constant time which is really really fast if you</p>



<p class="wp-block-paragraph">don&#8217;t know uh big o and time complexities check out my other videos but um it&#8217;s just really really</p>



<p class="wp-block-paragraph">fast to jump to an index when you&#8217;re using an array or a vector but it&#8217;s kind of slow when</p>



<p class="wp-block-paragraph">you&#8217;re using an actual linked list or some other data structure that makes you scan through it so</p>



<p class="wp-block-paragraph">i&#8217;m going to say that my vertex list is actually a vector but i&#8217;ll keep calling it a list anyway</p>



<p class="wp-block-paragraph">so we got the vertices uh we have to start naming them okay so the first thing is i&#8217;m going to do</p>



<p class="wp-block-paragraph">we got the three there and we got the 13 and we got the 6 and the 12 and the 15 i&#8217;m just naming</p>



<p class="wp-block-paragraph">all of the nodes in my graph i like to go from left to right because that makes it easier for</p>



<p class="wp-block-paragraph">me to debug what i&#8217;m doing um you probably in your code i said this in the last video you probably</p>



<p class="wp-block-paragraph">don&#8217;t want to store the actual value in your vertex list you probably actually want to create</p>



<p class="wp-block-paragraph">an object of type node or of type vertex and give it the template data</p>



<p class="wp-block-paragraph">and give it the template data type of in this case integer and then set the 13 inside of the class</p>



<p class="wp-block-paragraph">it&#8217;s not as fast and memory efficient as just putting a number there but uh you know for me</p>



<p class="wp-block-paragraph">i like more flexibility and i like to be able to do more powerful things with my stuff so i&#8217;m going</p>



<p class="wp-block-paragraph">to say that 13 and all of the other nodes really that represents to me i made a brand new instance</p>



<p class="wp-block-paragraph">of a class called node or vertex and then i set it up however i wanted and one of the things i did</p>



<p class="wp-block-paragraph">set it up, we&#8217;ll stick to number 30.</p>



<p class="wp-block-paragraph">things i did to set it up we&#8217;ll stick the number 13 inside of the class but for the for the diagram</p>



<p class="wp-block-paragraph">it&#8217;s fine like this okay so we have our vertex list that&#8217;s the v if you&#8217;re looking at the uh</p>



<p class="wp-block-paragraph">you know the v comma e the v part now we need to do the edge list so i&#8217;m going to say here&#8217;s my</p>



<p class="wp-block-paragraph">edge list and we&#8217;re going to use the edge list representation like i talked about in previous</p>



<p class="wp-block-paragraph">videos, which is basically a tuple where one tuple describes one edge. So in our</p>



<p class="wp-block-paragraph">So, in our graph that we have right now, we definitely need a starting point and an ending point.</p>



<p class="wp-block-paragraph">So, let me just start by looking at the 3 node, and I want to describe one of the edges for the 3.</p>



<p class="wp-block-paragraph">So, the 3 goes to the 18 and the 13 and the 12.</p>



<p class="wp-block-paragraph">I&#8217;m going to scan my eyes from left to right to make it a little more simple.</p>



<p class="wp-block-paragraph">So, the 3 node, it connects to the 13 node, so I&#8217;m going to put a 3, 13.</p>



<p class="wp-block-paragraph">the nodes doesn&#8217;t matter in an undirected graph so i could have easily put 13 and 3 it&#8217;s fine</p>



<p class="wp-block-paragraph">you don&#8217;t want to duplicate it by putting 13 comma 3 sorry you don&#8217;t want to put 3 comma 13 and then</p>



<p class="wp-block-paragraph">later put 13 comma 3. you don&#8217;t want to double it up because that would be like representing two</p>



<p class="wp-block-paragraph">separate edges i&#8217;m just going to sort it in my mind before so that i don&#8217;t have to sort it again</p>



<p class="wp-block-paragraph">later when i&#8217;m reading the graph which makes it faster for read operations but so 3 goes to 13</p>



<p class="wp-block-paragraph">And then we have to represent the weight, so the tuple gets a little more complicated.</p>



<p class="wp-block-paragraph">so the tuple gets a little more complicated than the last video just by a little bit i&#8217;m going to</p>



<p class="wp-block-paragraph">say 3 comma 13 comma the weight which is just a 1 here and i think i mentioned this in my other</p>



<p class="wp-block-paragraph">videos like a while back but uh the weight doesn&#8217;t have to be integer it could be a float it could be</p>



<p class="wp-block-paragraph">any data type you wanted really as long as your algorithms support it and you have you know your</p>



<p class="wp-block-paragraph">operator overloads all done and all that could be a full class just for the weight if you wanted to</p>



<p class="wp-block-paragraph">but for this video it&#8217;s just going to be the weight is an integer so that&#8217;s the cost of</p>



<p class="wp-block-paragraph">traveling</p>



<p class="wp-block-paragraph">is an integer so that&#8217;s the cost of traveling along that one edge so notice how all of our</p>



<p class="wp-block-paragraph">tuples have three items each it&#8217;s a triple tuple so i&#8217;m going to continue trying to represent uh</p>



<p class="wp-block-paragraph">what the three touches so the three uh it touches the 13 and it also touches the 12 so i&#8217;m going to</p>



<p class="wp-block-paragraph">say 3 goes to 12. what does that edge cost it costs us six because that&#8217;s the little pink six</p>



<p class="wp-block-paragraph">there we&#8217;re done with that tuple so what else does three touch uh touches the 13 and then it touches</p>



<p class="wp-block-paragraph">the</p>



<p class="wp-block-paragraph">touches the 13 and then it touches the uh 12 and then it touches the 18. so i&#8217;m going to put an 18</p>



<p class="wp-block-paragraph">there what does that edge cost it costs a four because there&#8217;s a pink little four at the very</p>



<p class="wp-block-paragraph">top of the graph surprise you didn&#8217;t know that okay so then uh i&#8217;m sorry we&#8217;re going to move on</p>



<p class="wp-block-paragraph">to the next node so we did the three already so i&#8217;m done with that i&#8217;m going to look at the 13.</p>



<p class="wp-block-paragraph">where does the 13 connect it connects to the three but that&#8217;s to the left</p>



<p class="wp-block-paragraph">because i&#8217;m this is why i like to scan my eyes from left to right i already know stuff on the</p>



<p class="wp-block-paragraph">left is handled i don&#8217;t have to do it again so forget about the three i already described it</p>



<p class="wp-block-paragraph">up here in the very first tuple three comma thirteen comma one i don&#8217;t want to describe it</p>



<p class="wp-block-paragraph">again so forget about the three now the thirteen connects to the six so thirteen comma six and what</p>



<p class="wp-block-paragraph">does that cost it costed two for our arbitrary labeling thirteen doesn&#8217;t touch any other node</p>



<p class="wp-block-paragraph">so we&#8217;re done with the thirteen row and by the way i&#8217;m doing a line new lines here you don&#8217;t have to</p>



<p class="wp-block-paragraph">to do that, I just</p>



<p class="wp-block-paragraph">here you don&#8217;t have to do that i just like to i like to do one you know row per per start node</p>



<p class="wp-block-paragraph">to make it look cooler and nicer okay so the uh 13 is done now let&#8217;s do the six</p>



<p class="wp-block-paragraph">six touches the 13 but remember in the previous row we just handled that so i&#8217;m not going to do</p>



<p class="wp-block-paragraph">it again the six to the right touches three other nodes you can see there are three lines</p>



<p class="wp-block-paragraph">protruding on the right side of the six so um i&#8217;m just going to take those from left to right</p>



<p class="wp-block-paragraph">It&#8217;s.</p>



<p class="wp-block-paragraph">I&#8217;m just going to take those from left to right.</p>



<p class="wp-block-paragraph">It&#8217;s touching the 12 at a cost of 14.</p>



<p class="wp-block-paragraph">The 6 is also touching the 15 at a cost of 12, I think.</p>



<p class="wp-block-paragraph">And the 6, you know, if I make mistakes, just leave it in a comment.</p>



<p class="wp-block-paragraph">I will leave the video up so you can always remember my humiliation.</p>



<p class="wp-block-paragraph">But I&#8217;m going to try my best.</p>



<p class="wp-block-paragraph">I did not practice this.</p>



<p class="wp-block-paragraph">6 touches the 15, and then the 6 touches the 18.</p>



<p class="wp-block-paragraph">So 6 touches 18, and then it costs 9.</p>



<p class="wp-block-paragraph">So now we&#8217;re probably done with the 6.</p>



<p class="wp-block-paragraph">we&#8217;re probably done with the six um moving on uh one node to the right now we&#8217;re going to look at</p>



<p class="wp-block-paragraph">the 12 okay so the 12 it touches 3 and 13 and 6 but those are already handled so forget it</p>



<p class="wp-block-paragraph">the 12 touches the 15 we did not handle that right yeah because we&#8217;re going from left to right</p>



<p class="wp-block-paragraph">uh and and then it costs us from going from 12 what am i doing it doesn&#8217;t touch the 15 oh my god</p>



<p class="wp-block-paragraph">so the 12 touches the</p>



<p class="wp-block-paragraph">uh so the 12 touches the uh the three which is already handled and it touches the</p>



<p class="wp-block-paragraph">six which is already handled and then it only goes to the right to the 18. okay</p>



<p class="wp-block-paragraph">anyway you know when i make mistakes on camera and i say do over i always go i don&#8217;t know why</p>



<p class="wp-block-paragraph">so the 12 and the 18 uh it&#8217;s going to cost us three so then we&#8217;re done with the 12th so i&#8217;m</p>



<p class="wp-block-paragraph">I&#8217;m going to go to the next one. We&#8217;ll look at the 15. The 15. 6 is already handled. 8.</p>



<p class="wp-block-paragraph">6 is already handled, 18 is not handled yet, so I&#8217;m going to put 18 there, and it cost us $88, and then the 18 is the last one.</p>



<p class="wp-block-paragraph">There&#8217;s nothing to do, because every node is on the left of the 18.</p>



<p class="wp-block-paragraph">If you carefully, if you pause the video and look at every single node, you&#8217;ll see it&#8217;s already represented in a previous node.</p>



<p class="wp-block-paragraph">So we&#8217;re officially done with the basic edge list representation of this graph, this undirected but weighted graph.</p>



<p class="wp-block-paragraph">We need to do something else, though.</p>



<p class="wp-block-paragraph">we need to do something else though i mentioned in the last video i&#8217;m going to repeat it in case</p>



<p class="wp-block-paragraph">you didn&#8217;t watch the last video but we need to make sure that uh oh i guess i forgot to separate</p>



<p class="wp-block-paragraph">those two things that means i have to duplicate the vertex list over here on the right side too</p>



<p class="wp-block-paragraph">okay um so on the left this is okay but it&#8217;s kind of slow because what if we&#8217;re trying to look at uh</p>



<p class="wp-block-paragraph">you know one particular edge let&#8217;s say that we we want to see what&#8217;s going on with this uh this</p>



<p class="wp-block-paragraph">edge right here. Let&#8217;s say the 3 and the 13 edge, for whatever reason.</p>



<p class="wp-block-paragraph">13 edge for whatever reason um i don&#8217;t know green 3 and the 13 edge okay so we&#8217;re looking at that</p>



<p class="wp-block-paragraph">edge maybe for some reason we had just finished scanning uh maybe that&#8217;s not a fun edge well</p>



<p class="wp-block-paragraph">what&#8217;s going on hello uh oh i forgot to set up a thing where you can make your cursor really</p>



<p class="wp-block-paragraph">visible okay um actually so so this is not the most fun edge let me let me see about the 15 and</p>



<p class="wp-block-paragraph">and 18-inch.</p>



<p class="wp-block-paragraph">18 edge excuse me i had to take a drink of water so we&#8217;re going to look at this edge connecting</p>



<p class="wp-block-paragraph">the 15 and the 18 node that&#8217;s a little more interesting so you can imagine maybe you were</p>



<p class="wp-block-paragraph">doing a little scan uh if you know big o complexity by now we had to check out every single edge in</p>



<p class="wp-block-paragraph">this edge list until we found the one that connected the 15 and the 18 so this was a linear</p>



<p class="wp-block-paragraph">time scan based on the number of edges so this is just it&#8217;s scalable but it&#8217;s not very fast right so</p>



<p class="wp-block-paragraph">We ended up kind of looking at this one.</p>



<p class="wp-block-paragraph">so we ended up kind of looking at this one right here not fast um but what if we want to examine</p>



<p class="wp-block-paragraph">uh some properties of the nodes or the vertices uh involved like the 15 and the 18.</p>



<p class="wp-block-paragraph">here in this representation on the left we have the values we have the 15 value and the 18 value</p>



<p class="wp-block-paragraph">we don&#8217;t really have a pointer to a full node object if that&#8217;s what you&#8217;re doing in your code</p>



<p class="wp-block-paragraph">so um how do we get those those node objects we&#8217;re gonna have to do another linear scan we&#8217;re gonna</p>



<p class="wp-block-paragraph">I&#8217;m gonna have to look at this one right here.</p>



<p class="wp-block-paragraph">to look at this one right here oh that doesn&#8217;t match the value of 15 look at this one look at</p>



<p class="wp-block-paragraph">this one look at this one we&#8217;re gonna have to scan every single node until we realize that it&#8217;s those</p>



<p class="wp-block-paragraph">two at the end this is true even if it&#8217;s a vector uh holding your vertices because if we don&#8217;t know</p>



<p class="wp-block-paragraph">the index then we have to actually just sweep through the whole vector so that&#8217;s really slow</p>



<p class="wp-block-paragraph">it&#8217;s still kind of scalable but uh it&#8217;s not the best instead let&#8217;s update the the representation</p>



<p class="wp-block-paragraph">on the right to have index</p>



<p class="wp-block-paragraph">on the right to have indexes we did this in the last video but basically if you just kind of look</p>



<p class="wp-block-paragraph">at this three node here the three node well let me let me copy this one more time the three node</p>



<p class="wp-block-paragraph">corresponds to index zero which i forgot to write down my bad let me write that down for you real</p>



<p class="wp-block-paragraph">fast get rid of that get rid of that get rid of that okay so i&#8217;m just going to update this vertex</p>



<p class="wp-block-paragraph">list to just show you that if we have a vector or in a</p>



<p class="wp-block-paragraph">that if we have a vector or an array then every single item has an index here&#8217;s index one index</p>



<p class="wp-block-paragraph">two index three and four and five and then i guess i&#8217;ll just copy paste that to the other one since</p>



<p class="wp-block-paragraph">i was too dumb to make an extra separated graph there um separated item okay so the uh the 15</p>



<p class="wp-block-paragraph">sorry no the 13 the 3 and the 13 i guess i got to get rid of that that&#8217;s distracting me</p>



<p class="wp-block-paragraph">I guess I gotta get rid of that, that&#8217;s distracting me.</p>



<p class="wp-block-paragraph">The three and the 13,</p>



<p class="wp-block-paragraph">those correspond to indexes zero and one</p>



<p class="wp-block-paragraph">in the vertex list, right?</p>



<p class="wp-block-paragraph">So zero and one, that&#8217;s the three and the 13.</p>



<p class="wp-block-paragraph">So I&#8217;m just gonna change the values,</p>



<p class="wp-block-paragraph">the T-type values, to the raw indexes.</p>



<p class="wp-block-paragraph">It&#8217;s gonna seem a little weird at first,</p>



<p class="wp-block-paragraph">and I&#8217;m gonna leave the weight alone,</p>



<p class="wp-block-paragraph">because that&#8217;s totally fine.</p>



<p class="wp-block-paragraph">We&#8217;re not gonna jump to a weight,</p>



<p class="wp-block-paragraph">unless maybe you had a weight list, a weight vector,</p>



<p class="wp-block-paragraph">if you wanted to make instances of weights.</p>



<p class="wp-block-paragraph">You could do that, I&#8217;m not gonna do it.</p>



<p class="wp-block-paragraph">do that i&#8217;m not going to do it so then again the 3 is a 0 the 12 is index 3 the 3 is another 0</p>



<p class="wp-block-paragraph">the 18 is index 5. i&#8217;ll just do this for every single row so the 13 here is index 1 and then</p>



<p class="wp-block-paragraph">the 6 index 2 notice how i&#8217;m just looking up here at the indexes of the vertex list and i&#8217;m just</p>



<p class="wp-block-paragraph">changing the node values to the indexes where the nodes actually are in the vertex list so that&#8217;s a</p>



<p class="wp-block-paragraph">So two.</p>



<p class="wp-block-paragraph">vertex list so that&#8217;s a 2 and then the 12 is going to be a 3 and then the 6 is also going to be a 2</p>



<p class="wp-block-paragraph">and the 15 is going to be a 4 and then the 6 is going to be a 2 and 18 is going to be 5</p>



<p class="wp-block-paragraph">on to the next row the 12 node is index 3 the 18 node is index 5 uh the 15 node is index 4 and the</p>



<p class="wp-block-paragraph">18 node is index 5 so whoa whoa correct me if i made a typo in the comments please i&#8217;ll release</p>



<p class="wp-block-paragraph">another video as a thank you.</p>



<p class="wp-block-paragraph">i&#8217;ll release another video as a thank you but uh now i&#8217;ve converted the whole entire representation</p>



<p class="wp-block-paragraph">on the right side to an index based uh uh you know edge list so i&#8217;m gonna do this one over</p>



<p class="wp-block-paragraph">here is by value and the one on the right is by index why is the one on the right better now</p>



<p class="wp-block-paragraph">remember at some point we might have been scanning to find an edge well what did i just do wrong oh i</p>



<p class="wp-block-paragraph">clicked over there okay we might have been scanning to find you know some edge so we&#8217;re like</p>



<p class="wp-block-paragraph">Like, subscribe, and hit the bell icon to be notified when I post a new video. Thanks for watching, and I&#8217;ll see you in the next one.</p>



<p class="wp-block-paragraph">Bye-bye.</p>



<p class="wp-block-paragraph">edge so we&#8217;re like scanning scanning scanning scanning and then maybe we decide we&#8217;re trying</p>



<p class="wp-block-paragraph">to figure out what&#8217;s going on with the two and the not the two and the four the uh the six and</p>



<p class="wp-block-paragraph">the fifteen node right so that&#8217;s uh the six and the fifteen node that&#8217;s basically you know this</p>



<p class="wp-block-paragraph">right here uh so now what if we want to do something with the nodes we want to do something</p>



<p class="wp-block-paragraph">with the six node do something with the 15 node we don&#8217;t want to scan through the vertex list again</p>



<p class="wp-block-paragraph">we don&#8217;t want to go scan scan scan scan scan that&#8217;s linear time that&#8217;s not as fast as it could</p>



<p class="wp-block-paragraph">Could be.</p>



<p class="wp-block-paragraph">That&#8217;s linear time, that&#8217;s not as fast as it could be.</p>



<p class="wp-block-paragraph">So instead, we&#8217;ve already converted here so that we have indexes.</p>



<p class="wp-block-paragraph">So if I look at the 2 and the 4, the 2 and the 4 represent indexes, not node values.</p>



<p class="wp-block-paragraph">So this 2 tells me that I can go to index 2 to get the 6 node,</p>



<p class="wp-block-paragraph">and the 4 tells me I can go to index 4 to get the 15 node.</p>



<p class="wp-block-paragraph">Notice how I did not have to scan the vertex list to figure out where those nodes are.</p>



<p class="wp-block-paragraph">And if you&#8217;re using a vector for your vertex list,</p>



<p class="wp-block-paragraph">list then you can jump to every index in constant time so now if we were going to you know search</p>



<p class="wp-block-paragraph">and do a bunch of stuff on edges we probably only had to spend linear time on the edge list but then</p>



<p class="wp-block-paragraph">we only spent constant time uh to to manipulate each node whereas it would have been linear plus</p>



<p class="wp-block-paragraph">linear uh in the past like on the left side that would have been uh you know if we&#8217;re going to do</p>



<p class="wp-block-paragraph">stuff with with both the edges and the nodes it would have been o of linear time based on the</p>



<p class="wp-block-paragraph">number of edges if we&#8217;re gonna do every</p>



<p class="wp-block-paragraph">on the number of edges if we&#8217;re going to do every you know something to every single edge</p>



<p class="wp-block-paragraph">plus linear time based on number of vertices but over here it&#8217;s going to be linear time of the</p>



<p class="wp-block-paragraph">edges plus just constant time which basically means it&#8217;s going to be you know big o of just</p>



<p class="wp-block-paragraph">the number of edges and i&#8217;m talking about a you know a fantasy scenario where we&#8217;re just going</p>



<p class="wp-block-paragraph">to scan a bunch of stuff you can imagine there&#8217;s a whole bunch of different operations you could</p>



<p class="wp-block-paragraph">do on a graph, and it would be very advantageous and fast.</p>



<p class="wp-block-paragraph">very advantageous and fast if you could just jump to a node if you wanted to be able to manipulate</p>



<p class="wp-block-paragraph">it directly um let&#8217;s see so i did i think 20 minutes already so i think this is going to be</p>



<p class="wp-block-paragraph">it for for today&#8217;s video um and i&#8217;m going to do another video after this where we start working</p>



<p class="wp-block-paragraph">with directed graphs so i&#8217;m going to do directed unweighted and then directed weighted so by the</p>



<p class="wp-block-paragraph">time you watch all four of these videos</p>



<p class="wp-block-paragraph">by the time you watch all four of these videos you&#8217;ll know how to represent all four types of</p>



<p class="wp-block-paragraph">graphs in the machine okay anyway so thank you for watching this video i hope you learned a little</p>



<p class="wp-block-paragraph">bit of stuff and had a little bit of fun i&#8217;ll see you next time tell your friends eat a chocolate</p>



<p class="wp-block-paragraph">okay i&#8217;m outie hey everybody thanks for watching this video again from the bottom of my heart i</p>



<p class="wp-block-paragraph">really appreciate it i do hope you did learn something and have some fun uh if you could do</p>



<p class="wp-block-paragraph">me a please a small little favor could you please</p>



<p class="wp-block-paragraph">please, a small little favor. Could you please subscribe and follow this channel or these videos</p>



<p class="wp-block-paragraph">or whatever it is you do on the current social media website that you&#8217;re looking at right now?</p>



<p class="wp-block-paragraph">It would really mean the world to me and it&#8217;ll help make more videos and grow this community.</p>



<p class="wp-block-paragraph">So we&#8217;ll be able to do more videos, longer videos, better videos, or just I&#8217;ll be able to keep making</p>



<p class="wp-block-paragraph">videos in general. So please do me a kindness and subscribe. You know, sometimes I&#8217;m sleeping</p>



<p class="wp-block-paragraph">in the middle of the night and I just wake up because I know somebody subscribed.</p>



<p class="wp-block-paragraph">just wake up because i know somebody subscribed or followed it just wakes me up and i get filled</p>



<p class="wp-block-paragraph">with joy that&#8217;s exactly what happens every single time so you could do it as a nice favor to me or</p>



<p class="wp-block-paragraph">you could you could troll me if you want to just wake me up in the middle of the night just subscribe</p>



<p class="wp-block-paragraph">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 middle</p>



<p class="wp-block-paragraph">of the screen right now you should see a qr code which you can scan in order to go to the website</p>



<p class="wp-block-paragraph">which i think is also named somewhere at the bottom of this video and it&#8217;ll take you to my</p>



<p class="wp-block-paragraph">main website where you can just kind of like see all the</p>



<p class="wp-block-paragraph">where you can just kind of like see all the videos i published and the services and tutorials and</p>



<p class="wp-block-paragraph">things that i offer and all that good stuff and uh if you have a suggestion for uh uh clarifications</p>



<p class="wp-block-paragraph">or errata or just future videos that you want to see please leave a comment or if you just want to</p>



<p class="wp-block-paragraph">say hey what&#8217;s up what&#8217;s going on you know just send me a comment whatever i also wake up for</p>



<p class="wp-block-paragraph">those in the middle of the night i get i wake up in a cold sweat and i&#8217;m like it would really it</p>



<p class="wp-block-paragraph">really mean the world to me I would really appreciate</p>



<p class="wp-block-paragraph">it really mean the world to me i would really appreciate it so again thank you so much for</p>



<p class="wp-block-paragraph">watching this video and enjoy the cool music as as i fade into the darkness which is coming for us all</p>



<p class="wp-block-paragraph">Teksting av Nicolai Winther</p>



<p class="wp-block-paragraph">Thanks for watching!</p>



<p class="wp-block-paragraph">Thank you.</p>
<p>The post <a href="https://www.NeuralLantern.com/how-to-represent-undirected-weighted-graphs-using-edge-lists/">How to Represent Undirected Weighted Graphs Using Edge Lists</a> appeared first on <a href="https://www.NeuralLantern.com">NeuralLantern.com</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.NeuralLantern.com/how-to-represent-undirected-weighted-graphs-using-edge-lists/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Graph Paths Explained: Node vs Edge Based, Simple Paths, Cycles and DAGs</title>
		<link>https://www.NeuralLantern.com/graph-paths-explained-node-vs-edge-based-simple-paths-cycles-and-dags/</link>
					<comments>https://www.NeuralLantern.com/graph-paths-explained-node-vs-edge-based-simple-paths-cycles-and-dags/#respond</comments>
		
		<dc:creator><![CDATA[mike]]></dc:creator>
		<pubDate>Wed, 05 Aug 2026 07:17:18 +0000</pubDate>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Data Structures]]></category>
		<category><![CDATA[Graphs]]></category>
		<category><![CDATA[Videos]]></category>
		<category><![CDATA[cyclic path]]></category>
		<category><![CDATA[DAG]]></category>
		<category><![CDATA[directed acyclic graph]]></category>
		<category><![CDATA[edge based path]]></category>
		<category><![CDATA[edge list]]></category>
		<category><![CDATA[graph algorithms basics]]></category>
		<category><![CDATA[graph cycles]]></category>
		<category><![CDATA[graph edges]]></category>
		<category><![CDATA[graph paths]]></category>
		<category><![CDATA[graph theory]]></category>
		<category><![CDATA[node based path]]></category>
		<category><![CDATA[paths in graphs]]></category>
		<category><![CDATA[simple path graph]]></category>
		<category><![CDATA[weighted graphs]]></category>
		<guid isPermaLink="false">https://www.NeuralLantern.com/?p=420</guid>

					<description><![CDATA[<p>Paths in a graph show how to travel from a start node to a destination. Node-based paths list the nodes visited but cannot distinguish parallel edges with different weights. Edge-based paths use tuples of start node, destination node and weight so every route is exact. Simple paths repeat no edges or vertices. Cyclic paths start and end on the same node and prove the graph is cyclic. A DAG is a directed acyclic graph with no cycles. These ideas prepare for graph algorithms.</p>
<p>The post <a href="https://www.NeuralLantern.com/graph-paths-explained-node-vs-edge-based-simple-paths-cycles-and-dags/">Graph Paths Explained: Node vs Edge Based, Simple Paths, Cycles and DAGs</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="Graph Paths Explained: Node vs Edge Based, Simple Paths, Cycles and DAGs" width="1380" height="776" src="https://www.youtube.com/embed/B1cK5ajqKx0?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 class="wp-block-paragraph">Hey there, let&#8217;s talk about paths inside of a graph. We draw a directed weighted graph and compare node-based paths to edge-based paths. Node lists alone cannot tell which edge you took when parallel edges have different costs. Edge-based paths use tuples of start, destination and weight so every route is clear.</p>



<p class="wp-block-paragraph">We also cover simple paths with no repeated edges or vertices, cyclic paths that start and end on the same node, and how a cycle proves the graph is cyclic. Then we explain DAGs, directed acyclic graphs, with examples that stay acyclic and ones that gain cycles.</p>



<p class="wp-block-paragraph">This sets up algorithms for later videos. Leave a comment with topics you want next. Thanks for watching and please subscribe.</p>



<p class="wp-block-paragraph">00:00 Introduction to Graph Paths<br>00:28 Drawing a Sample Graph<br>02:25 What is a Path<br>02:42 Node-Based Paths<br>03:27 Adding Weights and Parallel Edges<br>04:34 Example Paths with Different Costs<br>07:19 Edge-Based Paths<br>07:35 Representing Paths with Tuples<br>11:35 Order Matters in Directed Graphs<br>12:52 Simple Paths<br>15:34 Cyclic Paths<br>18:22 Directed Acyclic Graphs DAGs<br>19:08 Building a DAG Example<br>21:41 Adding a Cycle to Break the DAG<br>23:15 Conclusion and Future Videos</p>



<p class="wp-block-paragraph">=-=-=-=-=-=-=-=-=</p>



<p class="wp-block-paragraph">Thanks for watching!</p>



<p class="wp-block-paragraph">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 class="wp-block-paragraph">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 class="wp-block-paragraph">Hey there, let&#8217;s talk about paths inside of a graph.</p>



<p class="wp-block-paragraph">Okay, so first thing that I&#8217;ll say is you probably should have watched my other videos already so that you understand at least the basics of graphs or maybe you already know and you just came here for a little extra.</p>



<p class="wp-block-paragraph">So let&#8217;s just draw a sample graph here.</p>



<p class="wp-block-paragraph">I&#8217;m going to do like random nodes.</p>



<p class="wp-block-paragraph">Let&#8217;s see what am I supposed to do.</p>



<p class="wp-block-paragraph">I&#8217;m supposed to like full screen that.</p>



<p class="wp-block-paragraph">I&#8217;m going to draw some random nodes with some random values inside of them.</p>



<p class="wp-block-paragraph">So I&#8217;m just going to do like a three here.</p>



<p class="wp-block-paragraph">Maybe like a three like that.</p>



<p class="wp-block-paragraph">And then I&#8217;m going to duplicate this a few times.</p>



<p class="wp-block-paragraph">So I&#8217;m going to go.</p>



<p class="wp-block-paragraph">This is a valid graph.</p>



<p class="wp-block-paragraph">It&#8217;s just not a connected graph as we talked about in my last video.</p>



<p class="wp-block-paragraph">So I&#8217;m just going to do this.</p>



<p class="wp-block-paragraph">I guess that&#8217;s okay.</p>



<p class="wp-block-paragraph">I&#8217;m going to change all these numbers.</p>



<p class="wp-block-paragraph">Even though your graph should be able to support duplicate values in the nodes,</p>



<p class="wp-block-paragraph">it&#8217;s going to be really hard to explain.</p>



<p class="wp-block-paragraph">So I&#8217;m just going to change all this stuff.</p>



<p class="wp-block-paragraph">9 here and then like 22.</p>



<p class="wp-block-paragraph">I think that&#8217;s probably good.</p>



<p class="wp-block-paragraph">So I&#8217;m going to do this.</p>



<p class="wp-block-paragraph">And this.</p>



<p class="wp-block-paragraph">Okay.</p>



<p class="wp-block-paragraph">So still a valid graph, but there&#8217;s no chance that we could have a path anywhere in this</p>



<p class="wp-block-paragraph">entire graph.</p>



<p class="wp-block-paragraph">anywhere in this entire graph so that sucks we could by the way do a path</p>



<p class="wp-block-paragraph">with a undirected graph but I kind of feel like I want to do direction on all</p>



<p class="wp-block-paragraph">the edges so let&#8217;s see let&#8217;s do direction and also weight I&#8217;m gonna like draw an</p>



<p class="wp-block-paragraph">arrow here and arrow here there I&#8217;m gonna draw edges first in a way that it</p>



<p class="wp-block-paragraph">like I could find a path almost anywhere I want so I&#8217;m just going to like draw a bunch of edges</p>



<p class="wp-block-paragraph">maybe like another edge over here nope that&#8217;s wrong how about this maybe another edge going up</p>



<p class="wp-block-paragraph">here and an edge going up here and an edge going down there I&#8217;m just going to draw a whole bunch</p>



<p class="wp-block-paragraph">of edges in the hopes that we&#8217;ll have a decent graph with lots of path possibilities okay I guess</p>



<p class="wp-block-paragraph">Oh, no, no, this is not a complete graph.</p>



<p class="wp-block-paragraph">I&#8217;ve just drawn a graph where you can kind of get everywhere.</p>



<p class="wp-block-paragraph">Okay, so, well, I mean, what is a path?</p>



<p class="wp-block-paragraph">It&#8217;s just sort of like, you know, some sort of a representation of how do you get from</p>



<p class="wp-block-paragraph">one start node to some destination node, like a map.</p>



<p class="wp-block-paragraph">So the first thing that we could do is we could say, let&#8217;s make a path based on nodes.</p>



<p class="wp-block-paragraph">I&#8217;m going to say node-based paths.</p>



<p class="wp-block-paragraph">Actually, let me get rid of this and put it on the next slide.</p>



<p class="wp-block-paragraph">We&#8217;ll do this, duplicate it, that way I have the original.</p>



<p class="wp-block-paragraph">Let&#8217;s pretend that our path is going to be just a list of nodes that we travel through.</p>



<p class="wp-block-paragraph">So I&#8217;m going to say node-based and we&#8217;ll have one path, we&#8217;ll say path1 and then path2,</p>



<p class="wp-block-paragraph">maybe we&#8217;ll do like a second path.</p>



<p class="wp-block-paragraph">well at first we might think this is totally fine but uh later on it&#8217;ll get confusing in terms of</p>



<p class="wp-block-paragraph">which edge did we actually take so let me show you let me show you what i mean i&#8217;m first going</p>



<p class="wp-block-paragraph">to add weights to all the edges so i&#8217;m just going to do like you know four and a three over here</p>



<p class="wp-block-paragraph">and then like a one and a two little one and then like a six and then like a four i&#8217;m just adding</p>



<p class="wp-block-paragraph">random weights or random costs to all of the edges and um then eventually let&#8217;s see when i</p>



<p class="wp-block-paragraph">let&#8217;s see when I finish doing all of that eventually we can probably realize that we</p>



<p class="wp-block-paragraph">could add more than one edge going from the same start to the same destination node but give it a</p>



<p class="wp-block-paragraph">different weight so that we have a little bit more of a choice so suppose for the sake of argument</p>



<p class="wp-block-paragraph">that we have this six and the four here the six can go to the four at a cost of four but maybe the</p>



<p class="wp-block-paragraph">a cost of one. I don&#8217;t know why it&#8217;s there. I don&#8217;t know why the four is there. Also,</p>



<p class="wp-block-paragraph">we&#8217;ll just say this is our graph. So you can have edges like this that go to the same start</p>



<p class="wp-block-paragraph">and destination nodes, but have different weights. So a path that is based on nodes</p>



<p class="wp-block-paragraph">doesn&#8217;t really have enough information to tell us which edge we took. Let me show you what I mean.</p>



<p class="wp-block-paragraph">So suppose we want to get from node, I don&#8217;t know, node three, I&#8217;ll put an S here for start.</p>



<p class="wp-block-paragraph">for start. And then I guess I&#8217;ll put a D for destination or donut. I&#8217;ll put a D there on</p>



<p class="wp-block-paragraph">node number 22. So we&#8217;ll say we&#8217;re going to go from node three to node 22. So start and destination</p>



<p class="wp-block-paragraph">a path based, sorry, a node based path, path one, we could say maybe let&#8217;s go from the three</p>



<p class="wp-block-paragraph">to the six to the four to the 12 to the nine to the 22 and that tells you all the notes that</p>



<p class="wp-block-paragraph">you would hop on another path could be let&#8217;s see that first path when we went from three one six</p>



<p class="wp-block-paragraph">four twelve nine uh 22 when we go from the six to the four we could have a second path here</p>



<p class="wp-block-paragraph">that goes from three to one to six to four but takes a different edge this is kind of what i&#8217;m</p>



<p class="wp-block-paragraph">this is kind of what i&#8217;m trying to show you notice that we have two different paths i&#8217;m going to do</p>



<p class="wp-block-paragraph">one in uh maybe red so it&#8217;s going to be three one six four so from three to one and then six</p>



<p class="wp-block-paragraph">and then we&#8217;ll travel along that four edge once we get to the four we&#8217;ll go 12 and then once we</p>



<p class="wp-block-paragraph">Then the other path, path number two, let&#8217;s say that we chose the other edge.</p>



<p class="wp-block-paragraph">We chose the six to the four edge that only cost us one.</p>



<p class="wp-block-paragraph">So it would kind of look the same for the most part, except when we finally get to that</p>



<p class="wp-block-paragraph">other node, we&#8217;re actually going to be going this way, right?</p>



<p class="wp-block-paragraph">And then we&#8217;re going to go up and then to the right and then down.</p>



<p class="wp-block-paragraph">So if you look at this carefully for a little while, maybe pause the video.</p>



<p class="wp-block-paragraph">These are actually two totally different paths with two totally different costs.</p>



<p class="wp-block-paragraph">different costs. So, um, you know, the cost of the orange, let me write it in orange.</p>



<p class="wp-block-paragraph">It&#8217;s going to be five plus one. So six, and then a seven there, and then a eight, nine there. And</p>



<p class="wp-block-paragraph">then, uh, then I guess like a 15 there and then a 16 there. So the cost of the orange pass is going</p>



<p class="wp-block-paragraph">to be 16. If we switch to the red path, the only difference is the choice of edge we took between</p>



<p class="wp-block-paragraph">we took between the six and the four node.</p>



<p class="wp-block-paragraph">So we would increase our cost by three.</p>



<p class="wp-block-paragraph">So the red path would be a cost of 19.</p>



<p class="wp-block-paragraph">But how can you tell the difference in a path</p>



<p class="wp-block-paragraph">that is based on a node?</p>



<p class="wp-block-paragraph">It doesn&#8217;t have enough information, right?</p>



<p class="wp-block-paragraph">So what we&#8217;re gonna do instead</p>



<p class="wp-block-paragraph">is we&#8217;re gonna use edge-based paths.</p>



<p class="wp-block-paragraph">Edge-based paths.</p>



<p class="wp-block-paragraph">In some places, you know, you can use node-based paths.</p>



<p class="wp-block-paragraph">That&#8217;s totally fine.</p>



<p class="wp-block-paragraph">fine but for me I&#8217;m going to say let&#8217;s do edge based paths edge based paths and now we just have</p>



<p class="wp-block-paragraph">to figure out how to add that extra information into the path so going from the three to the one</p>



<p class="wp-block-paragraph">we&#8217;re actually traveling along an edge right we&#8217;re traveling along that five edge so let&#8217;s just stick</p>



<p class="wp-block-paragraph">a tuple in there a tuple meaning just a little collection of values for those of you in c++ if</p>



<p class="wp-block-paragraph">items we&#8217;re going to use three item tuples tuples not always limited to three items it could be two</p>



<p class="wp-block-paragraph">three four even probably one um or much more so i&#8217;m going to say let&#8217;s use a tuple that has three</p>



<p class="wp-block-paragraph">items per item or tuple and we&#8217;ll just say that we specify the start node and then the destination</p>



<p class="wp-block-paragraph">node so we start at three we go to one and then the weight of the edge that we choose to travel</p>



<p class="wp-block-paragraph">but we&#8217;re putting enough information into our hop</p>



<p class="wp-block-paragraph">that this can be considered an edge-based path.</p>



<p class="wp-block-paragraph">So when we go to the one node,</p>



<p class="wp-block-paragraph">we ended on the one node, sorry, we&#8217;ve gone to the one node.</p>



<p class="wp-block-paragraph">We just ended there.</p>



<p class="wp-block-paragraph">So we could start on the one node for the next tuple</p>



<p class="wp-block-paragraph">because then we&#8217;re going to go to the,</p>



<p class="wp-block-paragraph">what are we doing first, red?</p>



<p class="wp-block-paragraph">I think we&#8217;re doing red first, yeah.</p>



<p class="wp-block-paragraph">We go from the one node to the six nodes.</p>



<p class="wp-block-paragraph">So I&#8217;m going to go comma six.</p>



<p class="wp-block-paragraph">and then we choose which edge to travel along that&#8217;s just the one edge and so 161 means start</p>



<p class="wp-block-paragraph">at the one node and at the six node and take the one weighted edge then do the same thing</p>



<p class="wp-block-paragraph">again for the next tuple so we&#8217;re at the six now where are we going to go we&#8217;re going to go to the</p>



<p class="wp-block-paragraph">four and then we choose the edge that costs four and then for the next tuple we&#8217;re on the four</p>



<p class="wp-block-paragraph">I&#8217;m going to say 12 is the destination and which edge did we choose the two even though there&#8217;s</p>



<p class="wp-block-paragraph">only one choice at least we have enough information for all edges in our entire path so then again</p>



<p class="wp-block-paragraph">we&#8217;re at the 12 we&#8217;re going to go to the 9 so I&#8217;m going to put a common 9 there and then we choose</p>



<p class="wp-block-paragraph">to take the edge that uh what was that cost six I can&#8217;t read anymore um let me actually just look</p>



<p class="wp-block-paragraph">real fast six I guess I overrode it I&#8217;m just going to assume that it&#8217;s a six um I&#8217;ve got</p>



<p class="wp-block-paragraph">I guess I could erase it real fast</p>



<p class="wp-block-paragraph">or move it or something</p>



<p class="wp-block-paragraph">okay let&#8217;s see what is that</p>



<p class="wp-block-paragraph">yeah it&#8217;s a 6 okay</p>



<p class="wp-block-paragraph">so we&#8217;re on the 12 we&#8217;re going to go to the 9</p>



<p class="wp-block-paragraph">and we choose to take the edge that costs 6</p>



<p class="wp-block-paragraph">then we&#8217;re on the 9</p>



<p class="wp-block-paragraph">and we choose to go to the 22</p>



<p class="wp-block-paragraph">using the edge that costs 2</p>



<p class="wp-block-paragraph">and then this last thing doesn&#8217;t need to be done</p>



<p class="wp-block-paragraph">because we have the entirety of the path</p>



<p class="wp-block-paragraph">in our edge based list</p>



<p class="wp-block-paragraph">So I&#8217;m actually just going to copy paste this entire path and stick it into the second path</p>



<p class="wp-block-paragraph">because remember the only difference between the first path and the second path that we</p>



<p class="wp-block-paragraph">chose is when we were going from 6 to 4 we chose the 1 edge instead of the 4 edge.</p>



<p class="wp-block-paragraph">So now look at this, I can just change that 4 to a 1 and now we definitely have two different</p>



<p class="wp-block-paragraph">paths and because we&#8217;re using edges to describe our path we can tell the difference.</p>



<p class="wp-block-paragraph">You know in a computer program we would know exactly which edge to travel along or even</p>



<p class="wp-block-paragraph">which edge to travel along or even just a user moving their finger along a graph or whatever.</p>



<p class="wp-block-paragraph">So in my opinion, edge-based paths are a little bit better.</p>



<p class="wp-block-paragraph">They&#8217;re also better because if you practice writing down edge lists like this,</p>



<p class="wp-block-paragraph">then you get a lot closer to a representation of a graph in your machine called an edge list.</p>



<p class="wp-block-paragraph">So in an edge list, oops, I put ed light.</p>



<p class="wp-block-paragraph">I don&#8217;t know why I did that.</p>



<p class="wp-block-paragraph">And now the computer&#8217;s not responding.</p>



<p class="wp-block-paragraph">So my mistake is immortalized.</p>



<p class="wp-block-paragraph">my mistake is immortalized. Edge list representation of a graph is basically a graph is equal to</p>



<p class="wp-block-paragraph">a tuple where one item in the tuple is a list of vertices and another item in the tuple</p>



<p class="wp-block-paragraph">is a list of edges. So if you learn how to do edge-based paths, then you&#8217;re already a step</p>



<p class="wp-block-paragraph">closer to being able to represent a graph inside of your computer program in the machine.</p>



<p class="wp-block-paragraph">So another thing that I want to point out is that since this graph has direction,</p>



<p class="wp-block-paragraph">the order of the start node and the destination node absolutely matters for example if we have</p>



<p class="wp-block-paragraph">this three comma one here indicating we start at three and we end at one well that means there must</p>



<p class="wp-block-paragraph">be an edge that points from three to one otherwise this is an invalid path if for some reason</p>



<p class="wp-block-paragraph">if for some reason let me get rid of this here there&#8217;s too much stuff on the screen</p>



<p class="wp-block-paragraph">three this is invalid because it&#8217;s saying that we have to start at the one node and end at the three</p>



<p class="wp-block-paragraph">node but the one node has no has no edge going to the three node so this is totally invalid</p>



<p class="wp-block-paragraph">does that make sense i hope it makes sense to you if this was an undirected graph where every single</p>



<p class="wp-block-paragraph">edge did not have direction then the order actually wouldn&#8217;t even matter you would just</p>



<p class="wp-block-paragraph">to see if an edge existed.</p>



<p class="wp-block-paragraph">So let&#8217;s see, we talked about different paths.</p>



<p class="wp-block-paragraph">You know, typically you would want to choose</p>



<p class="wp-block-paragraph">the lowest cost path,</p>



<p class="wp-block-paragraph">but there are algorithms that we can use</p>



<p class="wp-block-paragraph">in future videos to compute paths.</p>



<p class="wp-block-paragraph">Let&#8217;s see, something called a simple path</p>



<p class="wp-block-paragraph">is where every single edge in the path is distinct.</p>



<p class="wp-block-paragraph">So for example, I don&#8217;t know,</p>



<p class="wp-block-paragraph">let&#8217;s say we had like a really gross path here.</p>



<p class="wp-block-paragraph">Let me get rid of, let me get rid of some of this.</p>



<p class="wp-block-paragraph">Let me get rid of some of this.</p>



<p class="wp-block-paragraph">Get rid of the oranges maybe.</p>



<p class="wp-block-paragraph">So that this is a little slightly easier to read.</p>



<p class="wp-block-paragraph">Let&#8217;s see.</p>



<p class="wp-block-paragraph">Did we choose?</p>



<p class="wp-block-paragraph">Oh, I have to fix this.</p>



<p class="wp-block-paragraph">Let&#8217;s fix the three and then the one.</p>



<p class="wp-block-paragraph">And then we chose the four.</p>



<p class="wp-block-paragraph">So this is the red path indeed.</p>



<p class="wp-block-paragraph">So a simple path is, nope, I accidentally erased like an extra edge or something.</p>



<p class="wp-block-paragraph">So I got to do one from the four to the 12.</p>



<p class="wp-block-paragraph">Okay.</p>



<p class="wp-block-paragraph">to the 12 okay let me just do that real fast from the 4 to the 12. at a cost of 2. okay so a simple</p>



<p class="wp-block-paragraph">path is something where you don&#8217;t repeat edges so i can also write down simple path here simple path</p>



<p class="wp-block-paragraph">if this was not a simple path then we would just basically have to repeat an edge somewhere</p>



<p class="wp-block-paragraph">so um if any of the edges or vertices were repeated this would not be a simple path so let me just i</p>



<p class="wp-block-paragraph">would not be a simple path so let me just I don&#8217;t know let me just update this real fast let&#8217;s say</p>



<p class="wp-block-paragraph">we do oh what should we do let&#8217;s do I don&#8217;t know when we go from three to one to six to four</p>



<p class="wp-block-paragraph">let&#8217;s go back from four to six and then we&#8217;ll take the other edge back to four and then we&#8217;ll</p>



<p class="wp-block-paragraph">go up to 12 so this will be like um not a simple path if we say gosh I should have written this</p>



<p class="wp-block-paragraph">this down before i drew it three to one and then one to six and then six to four and then four back</p>



<p class="wp-block-paragraph">to six okay so i&#8217;m going to add another tuple so starting at four going back to six and taking</p>



<p class="wp-block-paragraph">that three edge i think is what we&#8217;re looking at and then another tuple to get back when we go from</p>



<p class="wp-block-paragraph">six to four and then take the um one cost edge and then once we&#8217;re at four then we can go four</p>



<p class="wp-block-paragraph">cost of two and then 12 to nine at a cost of six and then nine to 22 at a cost of two okay so</p>



<p class="wp-block-paragraph">i mean i&#8217;m just saying you can make a path where you just repeat a whole bunch of the edges and</p>



<p class="wp-block-paragraph">nodes and you&#8217;re just like going in a circle forever like whatever you really want it&#8217;s not</p>



<p class="wp-block-paragraph">necessarily going to be an efficient path or something that an algorithm should produce</p>



<p class="wp-block-paragraph">but you can have a path like that maybe your character is just going crazy in the game and</p>



<p class="wp-block-paragraph">because we repeat stuff on the previous slide.</p>



<p class="wp-block-paragraph">Since we did not repeat anything, this is a simple path.</p>



<p class="wp-block-paragraph">Okay, let&#8217;s see.</p>



<p class="wp-block-paragraph">Something else that I wanna talk about is a cyclic path.</p>



<p class="wp-block-paragraph">A cyclic path is basically a path</p>



<p class="wp-block-paragraph">where you start and end on the same node.</p>



<p class="wp-block-paragraph">Being able to find a cyclic path in a graph</p>



<p class="wp-block-paragraph">is a way that you can prove that the graph is itself cyclic.</p>



<p class="wp-block-paragraph">is itself cyclic. Let me try to get rid of this here. Yeah, there we go. Okay, so just</p>



<p class="wp-block-paragraph">pretend for the sake of argument that I&#8217;m just kind of looking around and I&#8217;m trying to find,</p>



<p class="wp-block-paragraph">you know, some path that proves I can start at the same node and end on that node without</p>



<p class="wp-block-paragraph">repeating edges. So let&#8217;s see. Right, so I&#8217;m going to do take the three and go to the six.</p>



<p class="wp-block-paragraph">to the six and then so i want to try if i start on the three then i want to try to find a way to get</p>



<p class="wp-block-paragraph">back to the three again so i go from three to six and then i can go from six to four</p>



<p class="wp-block-paragraph">and then if i go from four to six over here i&#8217;m not repeating that edge going from six to four i&#8217;m</p>



<p class="wp-block-paragraph">using a new edge from four to six and then i can go from six to three again not actually repeating</p>



<p class="wp-block-paragraph">means I have found a cycle in the graph. Let me just describe this path real fast in terms of</p>



<p class="wp-block-paragraph">edges. So we started on three. Oops. We started on three and then we went to six and it cost us three.</p>



<p class="wp-block-paragraph">And then once we were on six, we went to four. So I&#8217;m going to go from six to four. And we chose</p>



<p class="wp-block-paragraph">the edge that cost us four. And then once we were on the four, we just went backwards to the six.</p>



<p class="wp-block-paragraph">four going to six and we took the edge that cost three once we were on six we took the six to three</p>



<p class="wp-block-paragraph">edge so six to three whoops six to three edge and that cost us three yeah did I do that right</p>



<p class="wp-block-paragraph">when we go from the three to the six in the beginning I wrote down a three but I should</p>



<p class="wp-block-paragraph">have written down a two hopefully you cringed on my behalf right because I was I think that red</p>



<p class="wp-block-paragraph">on the left side so my brain was looking at the three but we were really taking the arrow that</p>



<p class="wp-block-paragraph">points down from the three to the six so there&#8217;s a two there let me just double check one more time</p>



<p class="wp-block-paragraph">six to four at cost of four four to six at cost of three six two three at cost of three</p>



<p class="wp-block-paragraph">so we have started and ended uh on the same node and therefore we have found a cycle in this graph</p>



<p class="wp-block-paragraph">which means this graph is cyclic what is cyclic just means it&#8217;s a graph that has a cycle</p>



<p class="wp-block-paragraph">It&#8217;s a graph that has a cycle anywhere inside of it.</p>



<p class="wp-block-paragraph">So this is a cyclic graph.</p>



<p class="wp-block-paragraph">Make sense?</p>



<p class="wp-block-paragraph">Okay, why is this important?</p>



<p class="wp-block-paragraph">Well, there&#8217;s kind of like a special type of graph called a DAG,</p>



<p class="wp-block-paragraph">which means a directed…</p>



<p class="wp-block-paragraph">Here, let me write this down real fast.</p>



<p class="wp-block-paragraph">On the next slide, so that we don&#8217;t get confused.</p>



<p class="wp-block-paragraph">On the next slide, I&#8217;m going to say we have a DAG</p>



<p class="wp-block-paragraph">is basically a directed…</p>



<p class="wp-block-paragraph">directed, acyclic graph. What does A mean when it&#8217;s in front of something? It just means it&#8217;s</p>



<p class="wp-block-paragraph">not that thing. So acyclic means not cyclic and then graph. So in some algorithms you are required</p>



<p class="wp-block-paragraph">to, you know, like have a DAG before you can even use the algorithm or if you&#8217;re being tested</p>



<p class="wp-block-paragraph">somewhere. So let&#8217;s just start by, you know, drawing like a little bit of a graph and we&#8217;ll</p>



<p class="wp-block-paragraph">have a graph that qualifies. So I have a little graph here. If it was empty,</p>



<p class="wp-block-paragraph">I don&#8217;t know if you could call it a DAG or not. I think I would because it&#8217;s empty. It could be</p>



<p class="wp-block-paragraph">directed. So we have like a graph here. I would call this a DAG because it&#8217;s a graph. We don&#8217;t</p>



<p class="wp-block-paragraph">have any edges, but like I could assume that this would be a directed graph. But just to make this</p>



<p class="wp-block-paragraph">a better example, let&#8217;s just say we have like two nodes here. And you could also probably assume</p>



<p class="wp-block-paragraph">DAG because you could assume that there are no edges in this graph but if we did add an edge</p>



<p class="wp-block-paragraph">a second from now then it would be directed not the best example but so let&#8217;s just add an edge here</p>



<p class="wp-block-paragraph">oh actually let&#8217;s add an edge that&#8217;s undirected real fast from from two to six and then maybe</p>



<p class="wp-block-paragraph">I&#8217;ll just kind of duplicate some of these we&#8217;ll do a couple more so I can just make this more</p>



<p class="wp-block-paragraph">so ask yourself is this a DAG directed acyclic well there are no cycles that I can see in the</p>



<p class="wp-block-paragraph">graph there&#8217;s no paths that you can find to kind of like end where you started but this is a it is</p>



<p class="wp-block-paragraph">a graph and I don&#8217;t see any cycles but it&#8217;s not directed because these edges don&#8217;t have direction</p>



<p class="wp-block-paragraph">so that means right away we have to upgrade every single edge to have direction so I guess I was</p>



<p class="wp-block-paragraph">going to draw a bunch more edges and now I&#8217;m just going to only draw this one edge</p>



<p class="wp-block-paragraph">So this is definitely a DAG if we just sort of do it like this, maybe another edge like this,</p>



<p class="wp-block-paragraph">because I don&#8217;t know about you, but I cannot find any path that allows me to start and end</p>



<p class="wp-block-paragraph">on the same node. Let&#8217;s just double check it. We&#8217;ll do the two. Can we find our way back to</p>



<p class="wp-block-paragraph">the two? No, because there are no incoming edges to the two. All right, that&#8217;s good. Let me just</p>



<p class="wp-block-paragraph">do a check here. What about the six? If we go out to the six, from the six to the four to the</p>



<p class="wp-block-paragraph">6 from the 6 to the 4 to the 11 it would have been dangerous if we could get to the 2 but we</p>



<p class="wp-block-paragraph">can&#8217;t even get to the 2 so that&#8217;s fine that means the 6 is okay we cannot find our way back there</p>



<p class="wp-block-paragraph">the 4 we can go to the 11 but we can&#8217;t go any further we&#8217;re at a dead end we can&#8217;t even go to</p>



<p class="wp-block-paragraph">the 6 that means the 4 can&#8217;t find its way back to itself where you can&#8217;t find a path that goes back</p>



<p class="wp-block-paragraph">the 11 has only incoming edges so that&#8217;s automatically you know a dead end so all of</p>



<p class="wp-block-paragraph">nodes qualify as we could not start and also end at that node with a single path so that&#8217;s good</p>



<p class="wp-block-paragraph">that means this is a DAG a directed acyclic graph if you want to make this into not a DAG just figure</p>



<p class="wp-block-paragraph">out how to add a path so that you end up with a cycle so what was the first thing we did the 2</p>



<p class="wp-block-paragraph">goes to the 6 goes to the 4 goes to 11 then it&#8217;s a dead end we could either add an edge from 11 to 2</p>



<p class="wp-block-paragraph">to make a cycle but that&#8217;s a little bit too easy right because if you see any pair of nodes</p>



<p class="wp-block-paragraph">right because if you see any pair of nodes with arrows kind of pointing back and forth between the</p>



<p class="wp-block-paragraph">two nodes then right away that alone is a cycle so I&#8217;m just going to maybe do an arrow or an edge</p>



<p class="wp-block-paragraph">pointing from four to two then it doesn&#8217;t look so much like a cycle although it&#8217;s not too hard</p>



<p class="wp-block-paragraph">to realize that there is a cycle in this graph in this graph so this is not a DAG let me show you</p>



<p class="wp-block-paragraph">and then from four to two.</p>



<p class="wp-block-paragraph">And therefore we would have a cycle.</p>



<p class="wp-block-paragraph">So this whole graph is not considered acyclic.</p>



<p class="wp-block-paragraph">This graph has a cycle.</p>



<p class="wp-block-paragraph">And if we want to do an edge-based path,</p>



<p class="wp-block-paragraph">we don&#8217;t have weights on this graph right now.</p>



<p class="wp-block-paragraph">So we could describe the path as such.</p>



<p class="wp-block-paragraph">We could say, start at two, go to six.</p>



<p class="wp-block-paragraph">And if your edge list is of a graph</p>



<p class="wp-block-paragraph">that doesn&#8217;t even have weight at all,</p>



<p class="wp-block-paragraph">then you don&#8217;t really need that third item in the tuple.</p>



<p class="wp-block-paragraph">item in the tuple you can just do a start node and a destination node this does kind of preclude</p>



<p class="wp-block-paragraph">you from having parallel edges you know two different edges that point from the same start</p>



<p class="wp-block-paragraph">node to the same end node so as i go from two to six and then from six to uh four and then from</p>



<p class="wp-block-paragraph">four to two and then we have a cycle and that&#8217;s it okay i think this is all i really wanted to</p>



<p class="wp-block-paragraph">talk about for this particular video in future videos we&#8217;re going to do algorithms and then</p>



<p class="wp-block-paragraph">some others up already that have graph properties and connectedness and definitions and things like</p>



<p class="wp-block-paragraph">that. So leave a comment asking about some algorithm or some property of a graph that</p>



<p class="wp-block-paragraph">you might be interested in. Otherwise, thank you so much for watching this video. I hope you learned</p>



<p class="wp-block-paragraph">a little bit of stuff. And I hope you had a little bit of fun. I&#8217;ll see you in the next video.</p>



<p class="wp-block-paragraph">Yeah, I&#8217;m gonna go eat some cookies. No, I shouldn&#8217;t do that. But I&#8217;m still going to.</p>



<p class="wp-block-paragraph">Hey everybody, thanks for watching this video again from the bottom of my heart.</p>



<p class="wp-block-paragraph">I really appreciate it.</p>



<p class="wp-block-paragraph">I do hope you did learn something and have some fun.</p>



<p class="wp-block-paragraph">If you could do me a please, a small little favor, could you please subscribe and follow</p>



<p class="wp-block-paragraph">this channel or these videos or whatever it is you do on the current social media website</p>



<p class="wp-block-paragraph">that you&#8217;re looking at right now.</p>



<p class="wp-block-paragraph">It would really mean the world to me and it&#8217;ll help make more videos and grow this community.</p>



<p class="wp-block-paragraph">So we&#8217;ll be able to do more videos, longer videos, better videos, or just I&#8217;ll be able</p>



<p class="wp-block-paragraph">better videos or just I&#8217;ll be able to keep making videos in general so please</p>



<p class="wp-block-paragraph">do do me a kindness and and subscribe you know sometimes I&#8217;m sleeping in the</p>



<p class="wp-block-paragraph">middle of the night and I just wake up because I know somebody subscribed or</p>



<p class="wp-block-paragraph">followed it just wakes me up and I get filled with joy that&#8217;s exactly what</p>



<p class="wp-block-paragraph">happens every single time so you could do it as a nice favor to me or you could</p>



<p class="wp-block-paragraph">you control me if you want to just wake me up in the middle of the night just</p>



<p class="wp-block-paragraph">subscribe and then I&#8217;ll just wake up I promise that&#8217;s what will happen also if</p>



<p class="wp-block-paragraph">if you look at the middle of the screen right now you should see a qr code which you can scan</p>



<p class="wp-block-paragraph">in order to go to the website which i think is also named somewhere at the bottom of this video</p>



<p class="wp-block-paragraph">and it&#8217;ll take you to my main website where you can just kind of like see all the videos i</p>



<p class="wp-block-paragraph">published and the services and tutorials and things that i offer and all that good stuff and</p>



<p class="wp-block-paragraph">if you have a suggestion for uh clarifications or errata or just future videos that you want to see</p>



<p class="wp-block-paragraph">Or if you just want to say, hey, what&#8217;s up?</p>



<p class="wp-block-paragraph">What&#8217;s going on?</p>



<p class="wp-block-paragraph">You know, just send me a comment, whatever.</p>



<p class="wp-block-paragraph">I also wake up for those in the middle of the night.</p>



<p class="wp-block-paragraph">I get, I wake up in a cold sweat and I&#8217;m like,</p>



<p class="wp-block-paragraph">it would really, it really mean the world to me.</p>



<p class="wp-block-paragraph">I would really appreciate it.</p>



<p class="wp-block-paragraph">So again, thank you so much for watching this video</p>



<p class="wp-block-paragraph">and enjoy the cool music as I fade into the darkness,</p>



<p class="wp-block-paragraph">which is coming for us all.</p>



<p class="wp-block-paragraph">so</p>



<p class="wp-block-paragraph">Thank you.</p>



<p class="wp-block-paragraph">I&#8217;m going to go ahead and get started.</p>



<p class="wp-block-paragraph">Thank you.</p>
<p>The post <a href="https://www.NeuralLantern.com/graph-paths-explained-node-vs-edge-based-simple-paths-cycles-and-dags/">Graph Paths Explained: Node vs Edge Based, Simple Paths, Cycles and DAGs</a> appeared first on <a href="https://www.NeuralLantern.com">NeuralLantern.com</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.NeuralLantern.com/graph-paths-explained-node-vs-edge-based-simple-paths-cycles-and-dags/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Graph Connectedness Explained: Connected Strongly Connected and Weakly Connected</title>
		<link>https://www.NeuralLantern.com/graph-connectedness-explained-connected-strongly-connected-and-weakly-connected/</link>
					<comments>https://www.NeuralLantern.com/graph-connectedness-explained-connected-strongly-connected-and-weakly-connected/#respond</comments>
		
		<dc:creator><![CDATA[mike]]></dc:creator>
		<pubDate>Sat, 25 Jul 2026 23:04:51 +0000</pubDate>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Data Structures]]></category>
		<category><![CDATA[Graphs]]></category>
		<category><![CDATA[Videos]]></category>
		<category><![CDATA[connected graph]]></category>
		<category><![CDATA[data structures]]></category>
		<category><![CDATA[directed graph]]></category>
		<category><![CDATA[graph algorithms]]></category>
		<category><![CDATA[graph connectedness]]></category>
		<category><![CDATA[graph paths]]></category>
		<category><![CDATA[graph theory]]></category>
		<category><![CDATA[nodes and edges]]></category>
		<category><![CDATA[strongly connected graph]]></category>
		<category><![CDATA[subgraphs]]></category>
		<category><![CDATA[undirected graph]]></category>
		<category><![CDATA[weakly connected graph]]></category>
		<guid isPermaLink="false">https://www.NeuralLantern.com/?p=417</guid>

					<description><![CDATA[<p>This video explains graph connectedness for both undirected and directed graphs. For undirected graphs a connected graph means every node can reach every other node through a path. Disconnected graphs have nodes that cannot reach others and may contain separate subgraphs. For directed graphs the terms change to strongly connected where every node reaches every other node following edge directions and weakly connected where the graph is connected if directions are ignored. Step by step examples show how adding edges turns a graph from not connected to weakly connected and finally to strongly connected.</p>
<p>The post <a href="https://www.NeuralLantern.com/graph-connectedness-explained-connected-strongly-connected-and-weakly-connected/">Graph Connectedness Explained: Connected Strongly Connected and Weakly Connected</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 loading="lazy" title="Graph Connectedness Explained: Connected Strongly Connected and Weakly Connected" width="1380" height="776" src="https://www.youtube.com/embed/u1D6huK1DCA?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 class="wp-block-paragraph">Hello there. Lets talk about graphs and whether they are connected or not or maybe whether they are strongly connected versus weakly connected. We look at undirected graphs first and show what makes a graph connected meaning every node can reach every other node by a path. We add edges and check the connections step by step while also noting subgraphs. Then we switch to directed graphs and explain strongly connected versus weakly connected. Strongly connected follows the edge directions for every path. Weakly connected ignores the directions and checks if the graph would still be connected. Examples show how adding edges changes the status of the graph.</p>



<p class="wp-block-paragraph">00:00 Introduction to Graph Connectedness<br>00:01 Drawing Nodes and a Disconnected Graph<br>01:56 Defining a Connected Graph<br>03:21 Introducing Subgraphs<br>04:48 Adding Edges to Create a Connected Graph<br>06:32 Adding Directions to Create a Directed Graph<br>08:03 Strongly Connected Versus Weakly Connected<br>08:34 Removing an Edge to Show Disconnection<br>09:29 Checking and Achieving Weak Connectivity<br>11:18 Adding Edges to Create a Strongly Connected Graph<br>13:20 Confirming the Strongly Connected Graph<br>13:32 Conclusion<br>14:17 Outro and Subscribe Request</p>



<p class="wp-block-paragraph">=-=-=-=-=-=-=-=-=</p>



<p class="wp-block-paragraph">Thanks for watching!</p>



<p class="wp-block-paragraph">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 class="wp-block-paragraph">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 class="wp-block-paragraph">Hello there! Let&#8217;s talk about graphs and whether they&#8217;re connected or not or maybe whether they&#8217;re</p>



<p class="wp-block-paragraph">strongly connected versus weakly connected versus not connected. You never know.</p>



<p class="wp-block-paragraph">Okay, so hopefully you&#8217;ve seen my previous videos by now where we just talked about the basics of</p>



<p class="wp-block-paragraph">paper here i&#8217;m just going to start drawing a graph remember graphs are nodes and edges where</p>



<p class="wp-block-paragraph">the nodes are like little t-type data structures that can hold a specific type of value um so i&#8217;m</p>



<p class="wp-block-paragraph">going to say our our nodes hold integers um i think i made that one too small that&#8217;s okay</p>



<p class="wp-block-paragraph">and the edges uh could have weights or maybe not weights at all depending on if you have</p>



<p class="wp-block-paragraph">a weighted or an unweighted graph so i&#8217;m just going to start duplicating my nodes a little bit</p>



<p class="wp-block-paragraph">going to make a random graph. I need to probably change these values. Technically your graphs</p>



<p class="wp-block-paragraph">should support duplicate values in the nodes and also the weights, but I don&#8217;t want to because</p>



<p class="wp-block-paragraph">it&#8217;s easier to talk about the graph when all the values are distinct. So for starters, we have a</p>



<p class="wp-block-paragraph">bunch of nodes and they&#8217;re not really connected to each other. Is this a valid graph? Yeah it is.</p>



<p class="wp-block-paragraph">It&#8217;s just not a connected graph. So the terminology that we&#8217;re going to use for</p>



<p class="wp-block-paragraph">undirected graphs meaning the edges don&#8217;t have direction is going to be connected or not you</p>



<p class="wp-block-paragraph">know i usually just say a not connected graph or a disconnected graph so just basically like</p>



<p class="wp-block-paragraph">connected or not connected okay so this is a not connected graph i&#8217;m going to say not connected</p>



<p class="wp-block-paragraph">not cinnamon i&#8217;m thinking about food as usual</p>



<p class="wp-block-paragraph">connected graph why is it not a connected graph well to define what does it mean to be a connected</p>



<p class="wp-block-paragraph">graph it just means that every single node can find a path to every single other node</p>



<p class="wp-block-paragraph">in an undirected graph so we can just double check this real fast we can say you know can</p>



<p class="wp-block-paragraph">node number two find a path to uh you know let me put a question here let&#8217;s say we&#8217;re going to check</p>



<p class="wp-block-paragraph">you should be checking all the nodes one by one by one to see if if the node in particular can</p>



<p class="wp-block-paragraph">first node that can&#8217;t do it means the whole graph is not considered connected so you know two it</p>



<p class="wp-block-paragraph">can&#8217;t reach one so that means it&#8217;s not a connected graph so this is not a connected graph because one</p>



<p class="wp-block-paragraph">or more nodes violate the rule of you have to be able to reach every single other node okay so that</p>



<p class="wp-block-paragraph">means if we want a connected graph we probably just have to start adding edges so I&#8217;m going to</p>



<p class="wp-block-paragraph">go ahead and uh let me let me write the word connected here and then I can like either circle</p>



<p class="wp-block-paragraph">cross it out. So right now we have no, this is not a connected graph. I&#8217;m going to start adding</p>



<p class="wp-block-paragraph">edges. We&#8217;re going to stick with an undirected graph for now. So I&#8217;m going to connect two and one</p>



<p class="wp-block-paragraph">and two and nine, maybe one and 13. Actually, you know what? I&#8217;m going to erase this edge</p>



<p class="wp-block-paragraph">and maybe connect these over here. And the thing is, this is a valid graph that you&#8217;re looking at.</p>



<p class="wp-block-paragraph">it&#8217;s just not a connected graph.</p>



<p class="wp-block-paragraph">Some other terminology I didn&#8217;t mention in other videos</p>



<p class="wp-block-paragraph">is that we can have subgraphs.</p>



<p class="wp-block-paragraph">We have like a subgraph here and another subgraph here.</p>



<p class="wp-block-paragraph">Those are basically just two different portions of the same graph</p>



<p class="wp-block-paragraph">that appear to be connected within themselves.</p>



<p class="wp-block-paragraph">So those are subgraphs.</p>



<p class="wp-block-paragraph">You can probably tell right away that this is not a connected graph.</p>



<p class="wp-block-paragraph">You can double check to be sure.</p>



<p class="wp-block-paragraph">You know, it&#8217;s good to do things the hard way</p>



<p class="wp-block-paragraph">so you don&#8217;t get the wrong answer</p>



<p class="wp-block-paragraph">when you&#8217;re really trying to figure something out.</p>



<p class="wp-block-paragraph">So let&#8217;s look at two.</p>



<p class="wp-block-paragraph">So let&#8217;s look at two. Can two reach one? Yes. So that&#8217;s good. Can two reach nine? Yeah,</p>



<p class="wp-block-paragraph">it just hops to one and then hops to nine. So two can reach one and also nine. That&#8217;s good.</p>



<p class="wp-block-paragraph">Can two reach three? Nope. So this is still not a connected graph.</p>



<p class="wp-block-paragraph">Okay, I&#8217;m going to add one more edge. And then we&#8217;ll just check again.</p>



<p class="wp-block-paragraph">Where do you think I&#8217;m going to do it? Maybe if I add, I&#8217;ll add a funky edge going from 13 to like</p>



<p class="wp-block-paragraph">to like nine or something just so it feels a little bit more awkward okay let&#8217;s check one by</p>



<p class="wp-block-paragraph">one by one let me actually get rid of this edge on the previous slide so we can still say that&#8217;s</p>



<p class="wp-block-paragraph">not connected let&#8217;s check one by one by one every node must be able to reach every single other</p>



<p class="wp-block-paragraph">node so I&#8217;m gonna look at two and I&#8217;m gonna say all right two can it reach one yes can it reach</p>



<p class="wp-block-paragraph">to nine. So that&#8217;s good. Can it reach three? Yeah, it can go from two to one to nine to 13</p>



<p class="wp-block-paragraph">to three, and then it can reach three. And because we just saw that it went through 13 to reach three,</p>



<p class="wp-block-paragraph">that means two can reach every single other node. This is going to be more important as a double</p>



<p class="wp-block-paragraph">check when we have directed graphs in a second. So two is good. So the next thing you want to do is</p>



<p class="wp-block-paragraph">the next thing you want to do is just move on to some other node and do the exact same process you</p>



<p class="wp-block-paragraph">know can can nine reach a one yes okay it can reach a one can it reach a two yeah it goes through</p>



<p class="wp-block-paragraph">the one can it reach the 13 yep can it reach the three yep okay so we just check every single</p>



<p class="wp-block-paragraph">destination node starting at the node nine but here&#8217;s a little bit of a shortcut try to find a</p>



<p class="wp-block-paragraph">node that is right next to a node that you know can reach everything and if the node in question</p>



<p class="wp-block-paragraph">that previously connected node, vertex,</p>



<p class="wp-block-paragraph">then we know that that node in particular is also connected.</p>



<p class="wp-block-paragraph">So what I&#8217;m saying is the one,</p>



<p class="wp-block-paragraph">instead of checking every single other node in the graph,</p>



<p class="wp-block-paragraph">which might be really hard</p>



<p class="wp-block-paragraph">if we have a whole bunch of nodes in our graph,</p>



<p class="wp-block-paragraph">we&#8217;ll just ask, can the one reach the two?</p>



<p class="wp-block-paragraph">Because if it can, the two can reach everything.</p>



<p class="wp-block-paragraph">So that means the one actually can reach everything as well.</p>



<p class="wp-block-paragraph">So the one can reach the two.</p>



<p class="wp-block-paragraph">So the one is connected to everything.</p>



<p class="wp-block-paragraph">the three, the three can reach the one and the one can reach everything. I&#8217;m doing things the</p>



<p class="wp-block-paragraph">hard way on purpose just to prove a point. So the three can reach everything. The 13 can reach the</p>



<p class="wp-block-paragraph">three in one hop. So the 13 can reach everything. The nine, it can reach the one and it can reach</p>



<p class="wp-block-paragraph">the 13 in one hop. So the nine can also actually reach everything. So that means this is indeed a</p>



<p class="wp-block-paragraph">the next thing that we&#8217;re going to do is add direction to our graph you know we could do like</p>



<p class="wp-block-paragraph">more examples maybe leave a comment if you want me to do some super extra complicated examples for</p>



<p class="wp-block-paragraph">just a undirected and connected graph i&#8217;m ignoring weight by the way because it doesn&#8217;t really matter</p>



<p class="wp-block-paragraph">for these purposes so let&#8217;s upgrade our graph so uh maybe i should put a question mark here</p>



<p class="wp-block-paragraph">that would have been a good idea we&#8217;re just asking you know is it connected or not</p>



<p class="wp-block-paragraph">And I&#8217;m just going to start adding direction to every single edge.</p>



<p class="wp-block-paragraph">Let&#8217;s see if I&#8217;m following my notes.</p>



<p class="wp-block-paragraph">Single node, subgraphs, right?</p>



<p class="wp-block-paragraph">Well, it wasn&#8217;t connected at first and then we started adding.</p>



<p class="wp-block-paragraph">Okay, so that&#8217;s basically okay.</p>



<p class="wp-block-paragraph">Let&#8217;s add direction to every single edge.</p>



<p class="wp-block-paragraph">So every single edge has to have a direction</p>



<p class="wp-block-paragraph">or every single edge has to have no direction.</p>



<p class="wp-block-paragraph">You can&#8217;t really mix and match.</p>



<p class="wp-block-paragraph">So I&#8217;m just going to go through every single edge and add a direction like this.</p>



<p class="wp-block-paragraph">and you know to be fair I think I&#8217;ve said this in my other videos an undirected edge is kind of the</p>



<p class="wp-block-paragraph">same thing as a directed edge going in or two directed edges going in both directions so this</p>



<p class="wp-block-paragraph">3 and 13 what&#8217;s going on with my computer hello this 3 and 13 edge it would have kind of been the</p>



<p class="wp-block-paragraph">same as just having two edges going in opposite directions so maybe I&#8217;ll just do that right now</p>



<p class="wp-block-paragraph">for this huge weird edge I&#8217;m just going to put like an arrow over here instead of totally redrawing</p>



<p class="wp-block-paragraph">Then I double check that every single edge has a direction so that I have a valid graph.</p>



<p class="wp-block-paragraph">And now I can ask, is this connected or not?</p>



<p class="wp-block-paragraph">Actually, when it comes to a directed graph, you don&#8217;t really have connected or not anymore.</p>



<p class="wp-block-paragraph">You have strongly connected versus weakly connected.</p>



<p class="wp-block-paragraph">Maybe I should just separate these words and then just kind of like move them.</p>



<p class="wp-block-paragraph">So let&#8217;s get rid of this.</p>



<p class="wp-block-paragraph">to this save this over here move it down so what am i talking about um well first let me remove an</p>



<p class="wp-block-paragraph">edge real quick i&#8217;ll remove this edge right here so now we have two sub graphs in this graph you</p>



<p class="wp-block-paragraph">can tell for sure if this was an undirected graph it would not be connected but now that we&#8217;re</p>



<p class="wp-block-paragraph">dealing with direction we have to ask is it strongly connected versus weakly so what does</p>



<p class="wp-block-paragraph">can every node reach every other node if you obey the direction of the edges so that&#8217;s clearly not</p>



<p class="wp-block-paragraph">true there&#8217;s no edge at all that even connects this one and nine so it&#8217;s definitely not strongly</p>



<p class="wp-block-paragraph">connected weakly connected on the other hand means if you temporarily ignore the direction</p>



<p class="wp-block-paragraph">of the edges then could you consider the graph connected so if we pretended that there were no</p>



<p class="wp-block-paragraph">arrows here would we think that it&#8217;s a connected graph if the answer is yes then it&#8217;s at least a</p>



<p class="wp-block-paragraph">So this is not weakly connected because if this was an undirected graph, it&#8217;s not even connected at all.</p>



<p class="wp-block-paragraph">So that sucks.</p>



<p class="wp-block-paragraph">I&#8217;m going to go ahead and add another edge here.</p>



<p class="wp-block-paragraph">So I&#8217;m going to add an edge from 2 to 9.</p>



<p class="wp-block-paragraph">So the first thing is, oh, sorry, I have to add another edge.</p>



<p class="wp-block-paragraph">Let me do from 1 to 13 for fun.</p>



<p class="wp-block-paragraph">So now the first thing is, let&#8217;s check to see if this is a strongly connected graph.</p>



<p class="wp-block-paragraph">node is unreachable by any other node so this is definitely not strongly</p>



<p class="wp-block-paragraph">connected because all the other nodes would be would have to be able to reach</p>



<p class="wp-block-paragraph">too alright so first thing you could do just to very quickly check is just look</p>



<p class="wp-block-paragraph">at every single node and ask is it reachable you know by anything and then</p>



<p class="wp-block-paragraph">after that you can do things the hard way so it&#8217;s not strongly connected what</p>



<p class="wp-block-paragraph">about weakly connected if we ignore the direction of the graph sorry if we</p>



<p class="wp-block-paragraph">then yeah, we could reach every single node from every other node. Let&#8217;s just double check that</p>



<p class="wp-block-paragraph">real fast. I&#8217;m going to say, you know, the two node, if we&#8217;re ignoring direction, can it reach</p>



<p class="wp-block-paragraph">the one? Yes. Can it reach the 13? Yes. The three? Yes. Can it reach the nine? Yes. So that means the</p>



<p class="wp-block-paragraph">two node is sort of like weakly connected to every other node in the graph. Do the same thing for the</p>



<p class="wp-block-paragraph">one node. Previously, we just said, you know, check everything one by one or use a shortcut.</p>



<p class="wp-block-paragraph">one by one or use a shortcut. So I&#8217;m going to use the shortcut. The one node, if we ignore direction</p>



<p class="wp-block-paragraph">can reach the two nodes. So I&#8217;m going to say the one is weakly connected, at least everything else.</p>



<p class="wp-block-paragraph">I&#8217;m not even going to check to see if it&#8217;s strongly connected to everything else. I think the answer</p>



<p class="wp-block-paragraph">is no, but we do the same thing for the 13. The 13 can reach the one pretty fast. The three can</p>



<p class="wp-block-paragraph">reach the 13. The nine can reach the two. So every single node can weakly reach. That&#8217;s not an</p>



<p class="wp-block-paragraph">a weakly connected graph. Okay, cool. How can we make this a strongly connected graph? Well,</p>



<p class="wp-block-paragraph">we just have to add a bunch of edges. So that&#8217;s what I&#8217;m going to do. I&#8217;m going to kind of like</p>



<p class="wp-block-paragraph">look at what is missing here. So we&#8217;ll ask the two, can the two reach and let&#8217;s obey the direction</p>



<p class="wp-block-paragraph">of the edges again. Can the two reach the one? Yes. Can the two reach the 13? Yes. Can it reach</p>



<p class="wp-block-paragraph">Yes, so that means right now the two is strongly connected to everything else.</p>



<p class="wp-block-paragraph">So we&#8217;re on track for a strongly connected graph.</p>



<p class="wp-block-paragraph">We then look at the one node and we realize that the one node,</p>



<p class="wp-block-paragraph">it can reach the 13 and the three and it can also reach the nine,</p>



<p class="wp-block-paragraph">but it can&#8217;t reach the two.</p>



<p class="wp-block-paragraph">That&#8217;s one thing that was blocking us last time from saying strongly connected.</p>



<p class="wp-block-paragraph">So we just have to add another edge if we want this to be a strongly connected graph.</p>



<p class="wp-block-paragraph">We have to figure out how can we get the one to reach the two.</p>



<p class="wp-block-paragraph">the 2 we can go through something if we want to that&#8217;s fine we can also just</p>



<p class="wp-block-paragraph">write an edge that just goes back to the 2 but that&#8217;s I don&#8217;t know that&#8217;s kind of</p>



<p class="wp-block-paragraph">boring I&#8217;m gonna make an edge that goes from 1 to 9 and then I&#8217;m gonna make an</p>



<p class="wp-block-paragraph">edge that goes from 9 to 2 so looking at the 1 node it can now reach the 2 if we</p>



<p class="wp-block-paragraph">go through the 9 so that&#8217;s good can the 1 reach the 9 yes can the 1 reach the 13</p>



<p class="wp-block-paragraph">three yes okay so the one node can now reach every single other node so now we&#8217;re a little bit more</p>



<p class="wp-block-paragraph">on track for a strongly connected graph look at the 13 node can it reach the one node um actually</p>



<p class="wp-block-paragraph">yes if we go from 13 to 9 and then 2 and then 1 we can reach the one node since we know the one</p>



<p class="wp-block-paragraph">node is connected to everything else we can now say that the 13 node is connected to everything</p>



<p class="wp-block-paragraph">13 so i&#8217;ll say three is connected to everything the nine node can reach the two node which is</p>



<p class="wp-block-paragraph">connected to everything so that means the nine node is also connected to everything and at this</p>



<p class="wp-block-paragraph">point we now have a strongly connected graph it&#8217;s not weakly connected it&#8217;s stronger than that</p>



<p class="wp-block-paragraph">any questions um so let&#8217;s see we added a bunch of uh edges i think maybe this is actually all we</p>



<p class="wp-block-paragraph">need to do for this particular video because we&#8217;re just going to talk about connectedness</p>



<p class="wp-block-paragraph">going to talk about connectedness about 15 minutes not too bad all right so i think i&#8217;m</p>



<p class="wp-block-paragraph">going to leave it here drop a comment if you want to do way more complicated examples if you want to</p>



<p class="wp-block-paragraph">provide me a sample graph that&#8217;s awful and i could just i don&#8217;t know in the sometime in the future i</p>



<p class="wp-block-paragraph">could record a video about it um or just let me know your thoughts thank you so much for watching</p>



<p class="wp-block-paragraph">this video i hope you had a little bit of fun and i hope you learned a little bit of stuff i&#8217;m outie</p>



<p class="wp-block-paragraph">Patowdy.</p>



<p class="wp-block-paragraph">Alright, let&#8217;s see.</p>



<p class="wp-block-paragraph">I&#8217;m going to do this.</p>



<p class="wp-block-paragraph">Whoa. Can you see that guy in the background?</p>



<p class="wp-block-paragraph">Oh, shoot.</p>



<p class="wp-block-paragraph">I&#8217;m just kidding.</p>



<p class="wp-block-paragraph">I set that as the screensaver.</p>



<p class="wp-block-paragraph">Hey, everybody.</p>



<p class="wp-block-paragraph">Thanks for watching this video again from the bottom of my heart.</p>



<p class="wp-block-paragraph">I really appreciate it.</p>



<p class="wp-block-paragraph">I do hope you did learn something and have some fun.</p>



<p class="wp-block-paragraph">If you could do me a please, a small little favor,</p>



<p class="wp-block-paragraph">please subscribe and follow this channel or these videos or whatever it is you do on the current</p>



<p class="wp-block-paragraph">social media website that you&#8217;re looking at right now. It would really mean the world to me and it&#8217;ll</p>



<p class="wp-block-paragraph">help make more videos and grow this community. So we&#8217;ll be able to do more videos, longer videos,</p>



<p class="wp-block-paragraph">better videos, or just I&#8217;ll be able to keep making videos in general. So please do me a kindness</p>



<p class="wp-block-paragraph">and subscribe. You know, sometimes I&#8217;m sleeping in the middle of the night and I just wake up</p>



<p class="wp-block-paragraph">or followed. It just wakes me up and I get filled with joy. That&#8217;s exactly what happens every single</p>



<p class="wp-block-paragraph">time. So you could do it as a nice favor to me or you could you could troll me if you want to just</p>



<p class="wp-block-paragraph">wake me up in the middle of the night. Just subscribe and then I&#8217;ll just wake up. I promise</p>



<p class="wp-block-paragraph">that&#8217;s what will happen. Also if you look at the middle of the screen right now you should see a</p>



<p class="wp-block-paragraph">QR code which you can scan in order to go to the website which I think is also named somewhere at</p>



<p class="wp-block-paragraph">the bottom of this video and it&#8217;ll take you to my main website where you can just kind of like see</p>



<p class="wp-block-paragraph">videos i published and the services and tutorials and things that i offer and all that good stuff</p>



<p class="wp-block-paragraph">and uh if you have a suggestion for uh uh clarifications or errata or just future videos</p>



<p class="wp-block-paragraph">that you want to see please leave a comment or if you just want to say hey what&#8217;s up what&#8217;s going on</p>



<p class="wp-block-paragraph">you know just send me a comment whatever i also wake up for those in the middle of the night i get</p>



<p class="wp-block-paragraph">i 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 class="wp-block-paragraph">it so again thank you so much for watching this video and enjoy the cool</p>



<p class="wp-block-paragraph">music as as I fade into the darkness which is coming for us all</p>



<p class="wp-block-paragraph">Thank you.</p>



<p class="wp-block-paragraph">so</p>



<p class="wp-block-paragraph">I&#8217;m going to go ahead and get started.</p>



<p class="wp-block-paragraph">so</p>



<p class="wp-block-paragraph">Yeah, I think I&#8217;m good.</p>



<p class="wp-block-paragraph">Hello there.</p>



<p class="wp-block-paragraph">Let&#8217;s talk about whether a graph is connected or not,</p>



<p class="wp-block-paragraph">or maybe whether it&#8217;s strongly connected or weakly connected or not connected at all.</p>



<p class="wp-block-paragraph">You never know.</p>
<p>The post <a href="https://www.NeuralLantern.com/graph-connectedness-explained-connected-strongly-connected-and-weakly-connected/">Graph Connectedness Explained: Connected Strongly Connected and Weakly Connected</a> appeared first on <a href="https://www.NeuralLantern.com">NeuralLantern.com</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.NeuralLantern.com/graph-connectedness-explained-connected-strongly-connected-and-weakly-connected/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>4 Graph Types: Undirected vs Directed, Weighted vs Unweighted</title>
		<link>https://www.NeuralLantern.com/4-graph-types-undirected-vs-directed-weighted-vs-unweighted/</link>
					<comments>https://www.NeuralLantern.com/4-graph-types-undirected-vs-directed-weighted-vs-unweighted/#respond</comments>
		
		<dc:creator><![CDATA[mike]]></dc:creator>
		<pubDate>Mon, 06 Jul 2026 10:05:07 +0000</pubDate>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Data Structures]]></category>
		<category><![CDATA[Graphs]]></category>
		<category><![CDATA[Videos]]></category>
		<category><![CDATA[algorithms]]></category>
		<category><![CDATA[binary search tree]]></category>
		<category><![CDATA[coding tutorial]]></category>
		<category><![CDATA[computer science]]></category>
		<category><![CDATA[data structures]]></category>
		<category><![CDATA[directed graph]]></category>
		<category><![CDATA[edges]]></category>
		<category><![CDATA[graph theory]]></category>
		<category><![CDATA[graph types]]></category>
		<category><![CDATA[graphs]]></category>
		<category><![CDATA[network topology]]></category>
		<category><![CDATA[nodes]]></category>
		<category><![CDATA[pathfinding]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[undirected graph]]></category>
		<category><![CDATA[unweighted graph]]></category>
		<category><![CDATA[vertices]]></category>
		<category><![CDATA[weighted graph]]></category>
		<guid isPermaLink="false">https://www.NeuralLantern.com/?p=407</guid>

					<description><![CDATA[<p>A graph is basically a collection of nodes, also known as vertices, and edges, which are the lines that connect nodes to each other. The four types of graphs are undirected unweighted, undirected weighted, directed unweighted, and directed weighted. Graphs help represent relationships between things like computers in a network or cities and airports.</p>
<p>The post <a href="https://www.NeuralLantern.com/4-graph-types-undirected-vs-directed-weighted-vs-unweighted/">4 Graph Types: Undirected vs Directed, Weighted vs Unweighted</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 loading="lazy" title="4 Graph Types: Undirected vs Directed, Weighted vs Unweighted" width="1380" height="776" src="https://www.youtube.com/embed/8Ml20VhpdrI?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 class="wp-block-paragraph">In this video we break down the four main types of graphs used in computer science: undirected unweighted, undirected weighted, directed unweighted, and directed weighted.</p>



<p class="wp-block-paragraph">We start with the basic idea of graphs &#8211; collections of nodes (vertices) and edges &#8211; and then explore each type with clear examples. Learn how these graphs represent real-world relationships like computer networks, airport routes, road maps, and game maps.</p>



<p class="wp-block-paragraph">Perfect for anyone learning data structures, algorithms, or preparing for coding interviews.</p>



<p class="wp-block-paragraph">00:00 Introduction to Graphs<br>00:19 Basic Graph Definition<br>00:48 Nodes and Vertices<br>01:01 Empty Graph Example<br>01:17 Graph Implementation Concepts<br>02:02 Node Data and Templates<br>03:22 Adding Nodes<br>04:00 Adding Edges<br>04:44 What Graphs Represent<br>05:36 Graph Use Cases<br>06:56 Real-World Examples<br>08:35 Four Types of Graphs<br>08:52 Undirected Unweighted Graph<br>10:40 Unweighted as Unit Weights<br>11:40 Undirected Weighted Graph<br>13:32 Weighted Graph Benefits<br>15:52 Directed Weighted Graph<br>19:50 Directed Unweighted Graph<br>20:32 Summary of Four Graph Types<br>21:19 Closing and Future Videos</p>



<p class="wp-block-paragraph">=-=-=-=-=-=-=-=-=</p>



<p class="wp-block-paragraph">Thanks for watching!</p>



<p class="wp-block-paragraph">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 class="wp-block-paragraph">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 class="wp-block-paragraph">Hello there! Let&#8217;s talk about four different types of graphs that you can use and how they relate to computer science.</p>



<p class="wp-block-paragraph">Okay, so you can see like I&#8217;ve got like a blank little graph paper up here.</p>



<p class="wp-block-paragraph">I&#8217;m going to talk about graphs and just the very basic idea of graphs in general</p>



<p class="wp-block-paragraph">and then show you the four different types of graphs that we have.</p>



<p class="wp-block-paragraph">about how to implement graphs inside the machine, time complexities, maybe graph algorithms,</p>



<p class="wp-block-paragraph">and a whole bunch of stuff, terminology, everything. Okay, so the first thing is, I guess I&#8217;m going to</p>



<p class="wp-block-paragraph">assume probably most of you have sort of seen a graph before and you kind of understand a little</p>



<p class="wp-block-paragraph">bit about it already, but I&#8217;ll say that a graph is basically a collection of nodes, also known as</p>



<p class="wp-block-paragraph">vertices or vertexes, and edges, which are the lines that connect nodes to each other. This screen</p>



<p class="wp-block-paragraph">See, this is a valid graph.</p>



<p class="wp-block-paragraph">I&#8217;m not talking about the graphing paper.</p>



<p class="wp-block-paragraph">It&#8217;s just an empty graph.</p>



<p class="wp-block-paragraph">There&#8217;s nothing there.</p>



<p class="wp-block-paragraph">So it&#8217;s still valid.</p>



<p class="wp-block-paragraph">It&#8217;s just blank.</p>



<p class="wp-block-paragraph">Okay, so then what I want to do is start drawing some nodes.</p>



<p class="wp-block-paragraph">What are the nodes again?</p>



<p class="wp-block-paragraph">Those are just vertices.</p>



<p class="wp-block-paragraph">Those are just like little data structure objects you can imagine in the code.</p>



<p class="wp-block-paragraph">I don&#8217;t want to get too far ahead of myself, but imagine that you have a class called graph.</p>



<p class="wp-block-paragraph">This is just one way to imagine.</p>



<p class="wp-block-paragraph">We have a class called graph and then a nested class inside of a graph called a node or a vertex</p>



<p class="wp-block-paragraph">If you want to be more fancy</p>



<p class="wp-block-paragraph">So the vertex class itself by the way</p>



<p class="wp-block-paragraph">This is not always going to be the way that you actually do this in your code the other representations that we&#8217;ll talk about sooner a little bit easier, but</p>



<p class="wp-block-paragraph">The vertex class itself needs to basically hold some data</p>



<p class="wp-block-paragraph">Depending on your implementation it might know about who it&#8217;s connected to maybe the graph knows that instead</p>



<p class="wp-block-paragraph">instead. In my implementations, the graph is going to know everything, but the vertex or the node</p>



<p class="wp-block-paragraph">itself needs to hold one piece of data. That&#8217;s kind of the whole point. So I&#8217;m going to say that</p>



<p class="wp-block-paragraph">the data type that these nodes hold are just integers. So I&#8217;m just going to put like a six in</p>



<p class="wp-block-paragraph">here just to indicate we have one node and the templated data type that it holds is an integer.</p>



<p class="wp-block-paragraph">And the specific integer for this specific node is just the number six. You can have any template</p>



<p class="wp-block-paragraph">any template type if you really want to you can people put floats in there you could put a custom</p>



<p class="wp-block-paragraph">custom class in there whatever you want but i just want to show you that we have a class called</p>



<p class="wp-block-paragraph">vertex or node and inside of it&#8217;s got a template type maybe just to make this a little bit more</p>



<p class="wp-block-paragraph">clear i&#8217;ll say you can imagine inside the vertex class uh there is a template type and we&#8217;ll call</p>



<p class="wp-block-paragraph">it uh i don&#8217;t know node node value type or something and we&#8217;ll call it data and then up</p>



<p class="wp-block-paragraph">I&#8217;m doing C++ up here.</p>



<p class="wp-block-paragraph">We have to kind of define the whole graph class as a template class.</p>



<p class="wp-block-paragraph">Now, of course, you could define the vertex class as the template class,</p>



<p class="wp-block-paragraph">but if you define the graph class as a template, then it all kind of falls through.</p>



<p class="wp-block-paragraph">So I&#8217;m just going to say class node value type.</p>



<p class="wp-block-paragraph">And so if you&#8217;ve written template classes before in C++,</p>



<p class="wp-block-paragraph">now you know that the user can instance the graph and at the same time,</p>



<p class="wp-block-paragraph">specify what is the data type of the stuff that the nodes hold.</p>



<p class="wp-block-paragraph">the stuff that the nodes hold.</p>



<p class="wp-block-paragraph">We do the same thing for edges too,</p>



<p class="wp-block-paragraph">but notice how there are no nodes that are connected to each other.</p>



<p class="wp-block-paragraph">So we have no edges in this graph.</p>



<p class="wp-block-paragraph">This is still a valid graph,</p>



<p class="wp-block-paragraph">but we could just sort of copy a node just for fun and say,</p>



<p class="wp-block-paragraph">all right, we&#8217;ve got two nodes now, two vertices.</p>



<p class="wp-block-paragraph">They could have the same value if you want.</p>



<p class="wp-block-paragraph">Graphs are supposed to, you know, support duplicate values in the nodes,</p>



<p class="wp-block-paragraph">but I&#8217;m just going to change the value here.</p>



<p class="wp-block-paragraph">This is also a valid graph.</p>



<p class="wp-block-paragraph">You don&#8217;t really need edges to have a valid graph.</p>



<p class="wp-block-paragraph">edges to have a valid graph. This is just something called a something called a graph that is not</p>



<p class="wp-block-paragraph">connected. We&#8217;ll talk about all that terminology and how to detect it in a future video. For now,</p>



<p class="wp-block-paragraph">I&#8217;m just going to say we have like a little graph here, which is kind of boring, but I&#8217;m going to</p>



<p class="wp-block-paragraph">add an edge. An edge is basically just, you know, a little mini data structure that connects two</p>



<p class="wp-block-paragraph">nodes. Depending on the way you represent this in the machine, which we&#8217;ll talk about in future</p>



<p class="wp-block-paragraph">well, a whole bunch of different ways.</p>



<p class="wp-block-paragraph">You could imagine this as a full-fledged class,</p>



<p class="wp-block-paragraph">although that&#8217;s not always going to be the way that we represent an actual edge.</p>



<p class="wp-block-paragraph">So imagine that we have a nested class called edge.</p>



<p class="wp-block-paragraph">And inside the edge class, we&#8217;ve got, you know, some stuff.</p>



<p class="wp-block-paragraph">We could have a weight, which means the cost of traveling against the edge.</p>



<p class="wp-block-paragraph">We could have many other properties.</p>



<p class="wp-block-paragraph">For now, I&#8217;ll just try to keep it simple.</p>



<p class="wp-block-paragraph">is pretty much a collection of vertices and edges and some sort of connection.</p>



<p class="wp-block-paragraph">What is a graph really for?</p>



<p class="wp-block-paragraph">Some people at first think that a graph is another way to represent a database.</p>



<p class="wp-block-paragraph">I&#8217;m going to erase this thing over here.</p>



<p class="wp-block-paragraph">Graphs, you could sort of use them as databases,</p>



<p class="wp-block-paragraph">but they&#8217;re not very good as databases because</p>



<p class="wp-block-paragraph">it would be really, really slow to search through the graph</p>



<p class="wp-block-paragraph">to find some piece of data that you&#8217;re looking for.</p>



<p class="wp-block-paragraph">It could be like a linear time database.</p>



<p class="wp-block-paragraph">better would be to take this graph and add a bunch of rules as you probably have found</p>



<p class="wp-block-paragraph">in my other videos by now and turn it into a binary search tree.</p>



<p class="wp-block-paragraph">A binary search tree is lightning fast.</p>



<p class="wp-block-paragraph">It runs in log time.</p>



<p class="wp-block-paragraph">Hash tables are faster than binary search trees, but basically a graph is always going</p>



<p class="wp-block-paragraph">to be way slower than a binary search tree unless the binary search tree is severely</p>



<p class="wp-block-paragraph">imbalanced.</p>



<p class="wp-block-paragraph">But that&#8217;s something for another video.</p>



<p class="wp-block-paragraph">Anyway, so we have a graph and it&#8217;s not a good database.</p>



<p class="wp-block-paragraph">What would a graph be good for?</p>



<p class="wp-block-paragraph">would a graph be good for? Well, graphs are usually pretty good to help you represent</p>



<p class="wp-block-paragraph">relationships between things. For example, the six and the one, imagine the six is something,</p>



<p class="wp-block-paragraph">maybe it&#8217;s a computer, maybe it&#8217;s a city, maybe it&#8217;s, I don&#8217;t know, like a train station,</p>



<p class="wp-block-paragraph">and the edges could represent connections. So I&#8217;m just going to start changing these values</p>



<p class="wp-block-paragraph">have some nodes just kind of hanging out off to the side, not really connected to anything.</p>



<p class="wp-block-paragraph">Maybe not great for your particular use case, but like it&#8217;s a valid graph. So I&#8217;m just going to,</p>



<p class="wp-block-paragraph">I&#8217;m just going to connect this and try to make this into a better graph.</p>



<p class="wp-block-paragraph">That&#8217;s a little bit more interesting. So we&#8217;ve got graphs that do a whole bunch of different</p>



<p class="wp-block-paragraph">things. Let me change these values real fast. I&#8217;ll maybe turn that into a 13 and turn that</p>



<p class="wp-block-paragraph">So imagine that we have like a little connection here, a little connection here, maybe another</p>



<p class="wp-block-paragraph">connection here and another one there.</p>



<p class="wp-block-paragraph">And you know, you are allowed to have connections that sort of look weird, like going from this</p>



<p class="wp-block-paragraph">six all the way around to this 13.</p>



<p class="wp-block-paragraph">That&#8217;s totally valid also.</p>



<p class="wp-block-paragraph">So I&#8217;ve basically just drawn a random graph, random nodes and random edges.</p>



<p class="wp-block-paragraph">Imagine that every single node here is a computer in a computer network and imagine every edge</p>



<p class="wp-block-paragraph">every edge which connects the nodes is just some sort of a connection let&#8217;s say a network cable</p>



<p class="wp-block-paragraph">or a wi-fi signal or something like that so if you imagine it that way then this graph could</p>



<p class="wp-block-paragraph">represent a network topology a bunch of computers connected together if these were cities and this</p>



<p class="wp-block-paragraph">is like actually maybe these are airports in cities you could imagine a graph could represent</p>



<p class="wp-block-paragraph">the relationship between different airports in which planes will fly notice on this graph just</p>



<p class="wp-block-paragraph">that the uh you know the uh the city number one uh there are no flights connecting it directly to</p>



<p class="wp-block-paragraph">city 44 but you could probably imagine well if we take a flight to uh from city one to city 10 and</p>



<p class="wp-block-paragraph">then from city 10 to 44 then we can get from one to 44 we just have to be clever about our connecting</p>



<p class="wp-block-paragraph">flights um let&#8217;s see so we could do like road maps airport maps the worldwide web is basically a graph</p>



<p class="wp-block-paragraph">at least from a certain perspective electrical circuits that are connected to each other</p>



<p class="wp-block-paragraph">are connected to each other even game maps what if your character is allowed to stand here in</p>



<p class="wp-block-paragraph">in space number three on some map and the character is only allowed to travel to space 13 or</p>



<p class="wp-block-paragraph">space 6 but not directly to space 1 well it could be a map that helps you understand where your</p>



<p class="wp-block-paragraph">character can go in a game okay so that&#8217;s like the basic idea of of what a graph is and uh how it</p>



<p class="wp-block-paragraph">actual four types of graphs that I&#8217;m going to go over in more detail in future videos. Let&#8217;s see,</p>



<p class="wp-block-paragraph">what time is it right now? We got like 10 minutes. Okay, so I can still kind of make this fast.</p>



<p class="wp-block-paragraph">So the first type of graph that we&#8217;re looking at right now is actually something called an</p>



<p class="wp-block-paragraph">undirected, unweighted graph. Why is it, let&#8217;s see, let me write this down first. It&#8217;s an undirected,</p>



<p class="wp-block-paragraph">undirected, unweighted graph. So why is this undirected? Because the edges don&#8217;t have direction.</p>



<p class="wp-block-paragraph">If I was standing in, you know, city six and I wanted to like drive or fly or whatever</p>



<p class="wp-block-paragraph">from city six to city three, then I should be able to do it because this edge that connects</p>



<p class="wp-block-paragraph">them doesn&#8217;t really say that I have to go in one direction or the other. I could also go to city</p>



<p class="wp-block-paragraph">three and then just walk right back or fly right back to city six. There&#8217;s no direction. So there&#8217;s</p>



<p class="wp-block-paragraph">no direction. So there&#8217;s an this that&#8217;s that&#8217;s why this is an undirected graph. This is an</p>



<p class="wp-block-paragraph">unweighted graph because we haven&#8217;t specified a cost for traveling along an edge. For example,</p>



<p class="wp-block-paragraph">if you know, if you&#8217;re at city three here, and you want to fly to city 13, how much jet fuel</p>



<p class="wp-block-paragraph">does it cost? How much time does it cost? If three is a computer and 13 is a computer,</p>



<p class="wp-block-paragraph">and the edges like a network cable, like how much money does it cost to transmit the data?</p>



<p class="wp-block-paragraph">transmit the data or what is the lag in milliseconds.</p>



<p class="wp-block-paragraph">You know, you can represent all sorts of things with these edges,</p>



<p class="wp-block-paragraph">but there&#8217;s no value on these edges,</p>



<p class="wp-block-paragraph">which means there are no weights to these edges.</p>



<p class="wp-block-paragraph">So that&#8217;s why this is an undirected and also unweighted graph.</p>



<p class="wp-block-paragraph">Uh, the first upgrade that I want to do is just kind of show you what you can</p>



<p class="wp-block-paragraph">sort of assume about an unweighted graph. This is not always true.</p>



<p class="wp-block-paragraph">It just depends on who you talk to and what your application implementations are.</p>



<p class="wp-block-paragraph">So imagine the node that goes from six, sorry, the edge that goes from six to one.</p>



<p class="wp-block-paragraph">If it&#8217;s an unweighted graph, you could just probably imagine that every weight is just a one.</p>



<p class="wp-block-paragraph">The point being that it always costs the same amount to travel along every edge,</p>



<p class="wp-block-paragraph">because in an unweighted graph, we don&#8217;t differentiate between the different edges</p>



<p class="wp-block-paragraph">in terms of their costs.</p>



<p class="wp-block-paragraph">We could just put a bunch of ones on all these edges.</p>



<p class="wp-block-paragraph">And it would still, you know, basically be considered an unweighted graph.</p>



<p class="wp-block-paragraph">It depends on who you talk to.</p>



<p class="wp-block-paragraph">maybe all the weights are zero, maybe all the weights are 10 or whatever.</p>



<p class="wp-block-paragraph">But, you know, usually I put a one there because I&#8217;d like to imagine the cost could just be the number of hops.</p>



<p class="wp-block-paragraph">So, for example, if I wanted to go from city six to city 10,</p>



<p class="wp-block-paragraph">I could probably, you know, start at city six and then go to city one and then hop to city 10.</p>



<p class="wp-block-paragraph">How many actual hops did I do? I did two.</p>



<p class="wp-block-paragraph">I could also come up with that number by just looking at the sum of all the weights of all the edges.</p>



<p class="wp-block-paragraph">all the edges. So notice how when I go from six to one, that costs me one weight or one hop. And</p>



<p class="wp-block-paragraph">then when I go from one to 10, that&#8217;s another one. So if you put ones on all the edges in an</p>



<p class="wp-block-paragraph">unweighted graph, then you&#8217;re kind of saying the total cost of some path is really just the number</p>



<p class="wp-block-paragraph">of hops. So it&#8217;s up to you. Anyway, that&#8217;s unweighted and undirected. Let&#8217;s upgrade this</p>



<p class="wp-block-paragraph">see we have an undirected and unweighted and i&#8217;m just going to duplicate this real fast and change</p>



<p class="wp-block-paragraph">this to a weighted graph so undirected but also weighted and the thing is as soon as you start</p>



<p class="wp-block-paragraph">putting numbers on a graph on the edges of a graph well then it&#8217;s considered weighted so even even a</p>



<p class="wp-block-paragraph">graph that has all ones on all the edges you could also call that weighted but now you have the</p>



<p class="wp-block-paragraph">freedom since it is considered a weighted graph to just assign different values to all the edges</p>



<p class="wp-block-paragraph">to all the edges. Again, these edges are a class sometimes, or you can think of them that way</p>



<p class="wp-block-paragraph">inside the graph. And the edge weights themselves are definitely considered a T type, a templated</p>



<p class="wp-block-paragraph">type, which means, you know, right now I&#8217;m clearly typing integers, but you could type some other</p>



<p class="wp-block-paragraph">data type. You could type floats. You could type some weird data type, like a string.</p>



<p class="wp-block-paragraph">Whether or not that&#8217;s going to be useful depends on your program, you know, what you&#8217;re trying to</p>



<p class="wp-block-paragraph">you know, what you&#8217;re trying to do with the graph. But let&#8217;s see, I think I&#8217;ve added custom numbers</p>



<p class="wp-block-paragraph">to every single edge. So now this is definitely an undirected, but weighted graph. That&#8217;s the</p>



<p class="wp-block-paragraph">second type of graph that we&#8217;re talking about. Okay, what&#8217;s what&#8217;s cool about a weighted graph?</p>



<p class="wp-block-paragraph">Well, imagine again, that this is an airport map, where we&#8217;re representing relationships between,</p>



<p class="wp-block-paragraph">you know, cities, like where can we fly and stuff. We&#8217;re basically saying at this point,</p>



<p class="wp-block-paragraph">it&#8217;s going to cost you 44 of something.</p>



<p class="wp-block-paragraph">Maybe this is a graph representing jet fuel or time or frequent flyer points or something like that.</p>



<p class="wp-block-paragraph">If you consider your edges to be custom classes,</p>



<p class="wp-block-paragraph">you could even put a whole bunch of different types of values in your graph at the same time</p>



<p class="wp-block-paragraph">to make it a little bit more flexible.</p>



<p class="wp-block-paragraph">But for now, we&#8217;ll just say there&#8217;s one templated type,</p>



<p class="wp-block-paragraph">which means if we go back up to this code real fast, where was that code at?</p>



<p class="wp-block-paragraph">Where was that code at?</p>



<p class="wp-block-paragraph">And we had, you know, our rough idea of, you know, what the, what the graph holds, you</p>



<p class="wp-block-paragraph">know, it holds like vertices and edges.</p>



<p class="wp-block-paragraph">We could upgrade this just a little bit to say that there is a, an edge value type.</p>



<p class="wp-block-paragraph">So I&#8217;m going to say class edge value, edge weight type, something like that.</p>



<p class="wp-block-paragraph">for the edge so that I can save characters. And then here, I&#8217;ll change this to a type for the</p>



<p class="wp-block-paragraph">node. This is why we call it T type. There&#8217;s like, we put the keyword template here in C++.</p>



<p class="wp-block-paragraph">And then sometimes people just use T&#8217;s here for these tokens. So I&#8217;m just going to say</p>



<p class="wp-block-paragraph">the type of data that a node can hold is going to be the T node. And then the type of data that</p>



<p class="wp-block-paragraph">the edge could hold would be the T edge. We&#8217;ll call that data. Or we could call that weight,</p>



<p class="wp-block-paragraph">because usually that data comes into play when you&#8217;re traveling along an edge, right? So there&#8217;s</p>



<p class="wp-block-paragraph">traveling along an edge, right? So there&#8217;s like two different types here. Anyway, so we got an</p>



<p class="wp-block-paragraph">undirected and unweighted graph. If we traveled from city six to city one, that costs us 44. But</p>



<p class="wp-block-paragraph">if you look at the graph a little bit more closely, we could take the longer way around. We could say</p>



<p class="wp-block-paragraph">go from six to three, and then go from three to 13. And then actually, let me change the color</p>



<p class="wp-block-paragraph">to orange so that you can see there&#8217;s different paths, six to three, and then three to 13,</p>



<p class="wp-block-paragraph">and then 13 to one, even though we took more hops,</p>



<p class="wp-block-paragraph">and that might have been considered more expensive</p>



<p class="wp-block-paragraph">in an unweighted graph,</p>



<p class="wp-block-paragraph">you can see that the cost of the first path</p>



<p class="wp-block-paragraph">from six to one, that&#8217;s 44.</p>



<p class="wp-block-paragraph">And the cost of the second path is seven plus three,</p>



<p class="wp-block-paragraph">that&#8217;s 10, and then plus nine, so that&#8217;s 19.</p>



<p class="wp-block-paragraph">So if we take the long way,</p>



<p class="wp-block-paragraph">it actually costs us less</p>



<p class="wp-block-paragraph">of whatever we&#8217;ve determined this unit is.</p>



<p class="wp-block-paragraph">You know, less jet fuel, less time, less whatever.</p>



<p class="wp-block-paragraph">less whatever these graphs in the machine are not necessarily going to be to scale because the</p>



<p class="wp-block-paragraph">machine in your computer your computer doesn&#8217;t really keep track of like the physical positioning</p>



<p class="wp-block-paragraph">of all these nodes and edges it just can keeps track of the relationship between the nodes and</p>



<p class="wp-block-paragraph">the edges and the weights and all that stuff so two different paths that we could take to get</p>



<p class="wp-block-paragraph">from six to one one of the paths is less expensive um or less time costly or just whatever and a graph</p>



<p class="wp-block-paragraph">data structure can kind of help us figure that out if we&#8217;re using an algorithm that understands</p>



<p class="wp-block-paragraph">weights okay so undirected and unweighted let&#8217;s add direction so um i&#8217;m going to erase this stuff</p>



<p class="wp-block-paragraph">right here real quick and in an undirected graph remember you can just kind of go in either</p>



<p class="wp-block-paragraph">direction along any edge but in a directed graph every single edge needs to have a direction so as</p>



<p class="wp-block-paragraph">I change one of the edges to have direction, then I must change all of the edges to have direction</p>



<p class="wp-block-paragraph">as well. So I&#8217;m just saying, okay, as soon as I did that, now this is an invalid graph</p>



<p class="wp-block-paragraph">because some of the edges don&#8217;t have direction. So now I need to fix everything. So I just,</p>



<p class="wp-block-paragraph">I&#8217;m going to arbitrarily and randomly choose a direction for every single edge like this.</p>



<p class="wp-block-paragraph">And then as soon as I&#8217;m done, I&#8217;m going to deal, I guess, with that giant edge</p>



<p class="wp-block-paragraph">that giant edge. So I&#8217;m going to go like that. So let&#8217;s see, all the edges seem to have direction.</p>



<p class="wp-block-paragraph">Now I&#8217;m just going to hand draw an arrow on one side of this giant edge. Okay. So this is directed</p>



<p class="wp-block-paragraph">and also weighted. What can we do with the directed graph? Well, it just basically tells</p>



<p class="wp-block-paragraph">you which direction you&#8217;re allowed to travel in. What if you have an airport where city six can</p>



<p class="wp-block-paragraph">only fly to city one, but city one, for some reason, never flies to city six. You got to take</p>



<p class="wp-block-paragraph">take like the long way you got to go from city one to 13 to three to six that&#8217;s something that</p>



<p class="wp-block-paragraph">a graph could help you represent what if your character in your game can only go in one direction</p>



<p class="wp-block-paragraph">but not the other direction okay no problem i mean that&#8217;s pretty much it you&#8217;re only allowed</p>



<p class="wp-block-paragraph">to travel in the same direction as the edge points but now we have a graph that is a lot less</p>



<p class="wp-block-paragraph">flexible because for example before we used to be able to go from city uh 10 to city 44 and then</p>



<p class="wp-block-paragraph">then come back again later if we wanted in the opposite direction. We can no longer do that</p>



<p class="wp-block-paragraph">because this edge only goes to 10. It doesn&#8217;t even go to 44. We can&#8217;t even ever actually get to 44.</p>



<p class="wp-block-paragraph">How do you sort of solve that? Well, just add another edge in the opposite direction.</p>



<p class="wp-block-paragraph">In graphs, you are allowed to do something called a parallel edge,</p>



<p class="wp-block-paragraph">which just basically means, you know, two edges between the same pair of nodes that just point</p>



<p class="wp-block-paragraph">in the same direction. You&#8217;re also allowed to do, you know, opposite facing edges. So</p>



<p class="wp-block-paragraph">edges so i just added a second edge there going from 10 to 44 and now if i was you know hanging</p>



<p class="wp-block-paragraph">out in city 10 i could just go back and forth between city 10 and 44 as much as i wanted to</p>



<p class="wp-block-paragraph">oh i forgot to add an edge weight for that new edge which means i wrote down an invalid graph</p>



<p class="wp-block-paragraph">so i&#8217;m just going to say two so uh maybe the wind is blowing in in your favor when you&#8217;re going from</p>



<p class="wp-block-paragraph">city 10 to city 44 maybe it&#8217;s blowing against you if you&#8217;re talking about city 44 to city 10 you</p>



<p class="wp-block-paragraph">you know whatever but you just have to have edge uh edge weight on every single edge</p>



<p class="wp-block-paragraph">okay so uh that&#8217;s directed and also weighted um and you can probably imagine previously when we</p>



<p class="wp-block-paragraph">had an undirected um graph when there was just like you know one edge going between uh two nodes</p>



<p class="wp-block-paragraph">and there was no direction on it like you know 44 to 10 if we just had like one edge with no</p>



<p class="wp-block-paragraph">have two edges each going in the opposite direction so we have directed and weighted i think the last</p>



<p class="wp-block-paragraph">thing that we didn&#8217;t do was directed and unweighted right so we have let me just double check real</p>



<p class="wp-block-paragraph">fast here we have undirected and unweighted and then we had undirected and weighted and then</p>



<p class="wp-block-paragraph">directed and weighted okay so now let&#8217;s do um i&#8217;m getting lost already oh my gosh i can&#8217;t believe i</p>



<p class="wp-block-paragraph">I saw undirected and unweighted so we did undirected twice already undirected so we&#8217;re</p>



<p class="wp-block-paragraph">going to do directed and unweighted next okay so the next graph a little bit less useful than</p>



<p class="wp-block-paragraph">what we&#8217;re looking at this this type of graph is a little bit more useful we&#8217;re going to do</p>



<p class="wp-block-paragraph">directed and unweighted oh my god okay directed and unweighted so directed and unweighted you</p>



<p class="wp-block-paragraph">Directed and unweighted, you can imagine, just means we get rid of all these weights.</p>



<p class="wp-block-paragraph">And then we keep the direction on all the edges.</p>



<p class="wp-block-paragraph">So this means we can keep track of where we&#8217;re allowed to go, if we&#8217;re pathfinding or just whatever.</p>



<p class="wp-block-paragraph">But we don&#8217;t really know what it costs to travel between the different graphs.</p>



<p class="wp-block-paragraph">So that&#8217;s directed and unweighted.</p>



<p class="wp-block-paragraph">Let&#8217;s see here.</p>



<p class="wp-block-paragraph">I&#8217;m going to just duplicate this or just make a new blank slide.</p>



<p class="wp-block-paragraph">Okay, undirected, oh gosh, I&#8217;ve got pink letters.</p>



<p class="wp-block-paragraph">Let&#8217;s see, undirected plus unweighted.</p>



<p class="wp-block-paragraph">And we&#8217;ve got undirected plus weighted.</p>



<p class="wp-block-paragraph">And then we&#8217;ve got directed plus unweighted.</p>



<p class="wp-block-paragraph">I don&#8217;t think I&#8217;m writing these down in the same order,</p>



<p class="wp-block-paragraph">but that&#8217;s okay.</p>



<p class="wp-block-paragraph">And then we&#8217;ve got directed plus weighted.</p>



<p class="wp-block-paragraph">So basically, you know, four types of graphs</p>



<p class="wp-block-paragraph">that we can talk about.</p>



<p class="wp-block-paragraph">In future videos, we&#8217;re going to go over graphs</p>



<p class="wp-block-paragraph">in more detail.</p>



<p class="wp-block-paragraph">We&#8217;ll talk about graph terminology,</p>



<p class="wp-block-paragraph">maybe some pathfinding algorithms.</p>



<p class="wp-block-paragraph">And yeah, so this is just a basic intro.</p>



<p class="wp-block-paragraph">How much time do we spend already?</p>



<p class="wp-block-paragraph">Oh God, we spent so much time.</p>



<p class="wp-block-paragraph">Spent like 22 minutes.</p>



<p class="wp-block-paragraph">Dang, man, even the smallest thing takes time.</p>



<p class="wp-block-paragraph">So I&#8217;ll see you in a future video</p>



<p class="wp-block-paragraph">when we talk more and more and more about graphs</p>



<p class="wp-block-paragraph">and other data structures concepts.</p>



<p class="wp-block-paragraph">Thanks for watching this video.</p>



<p class="wp-block-paragraph">I hope you learned a little bit of stuff</p>



<p class="wp-block-paragraph">I hope you learned a little bit of stuff and had a little bit of fun.</p>



<p class="wp-block-paragraph">I&#8217;m out of here.</p>



<p class="wp-block-paragraph">Go.</p>



<p class="wp-block-paragraph">Hey, everybody.</p>



<p class="wp-block-paragraph">Thanks for watching this video again from the bottom of my heart.</p>



<p class="wp-block-paragraph">I really appreciate it.</p>



<p class="wp-block-paragraph">I do hope you did learn something and have some fun.</p>



<p class="wp-block-paragraph">If you could do me a please, a small little favor,</p>



<p class="wp-block-paragraph">could you please subscribe and follow this channel or these videos</p>



<p class="wp-block-paragraph">or whatever it is you do on the current social media website that you&#8217;re looking at right now,</p>



<p class="wp-block-paragraph">it would really mean the world to me.</p>



<p class="wp-block-paragraph">And it&#8217;ll help make more videos and grow this community.</p>



<p class="wp-block-paragraph">So we&#8217;ll be able to do more videos, longer videos, better videos,</p>



<p class="wp-block-paragraph">or just I&#8217;ll be able to keep making videos in general.</p>



<p class="wp-block-paragraph">So please do me a kindness and subscribe.</p>



<p class="wp-block-paragraph">You know, sometimes I&#8217;m sleeping in the middle of the night</p>



<p class="wp-block-paragraph">and I just wake up because I know somebody subscribed or followed.</p>



<p class="wp-block-paragraph">It just wakes me up and I get filled with joy.</p>



<p class="wp-block-paragraph">That&#8217;s exactly what happens every single time.</p>



<p class="wp-block-paragraph">So you could do it as a nice favor to me or you could you control me if you want to just wake me up in the middle</p>



<p class="wp-block-paragraph">And I just subscribe and then I&#8217;ll just wake up. I promise that&#8217;s what will happen</p>



<p class="wp-block-paragraph">Also, if you look at the middle of the screen right now</p>



<p class="wp-block-paragraph">You should see a QR code which you can scan in order to go to the website</p>



<p class="wp-block-paragraph">which I think is also named somewhere at the bottom of this video and</p>



<p class="wp-block-paragraph">It&#8217;ll take you to my main website where you can just kind of like see all the videos</p>



<p class="wp-block-paragraph">I published and the services and tutorials and things that I offer and all that good stuff and</p>



<p class="wp-block-paragraph">and if you have a suggestion for clarifications or errata or just future</p>



<p class="wp-block-paragraph">videos that you want to see please leave a comment or if you just want to say hey</p>



<p class="wp-block-paragraph">what&#8217;s up what&#8217;s going on you know just send me a comment whatever I also wake</p>



<p class="wp-block-paragraph">up for those in the middle of the night I get I wake up in a cold sweat I&#8217;m like</p>



<p class="wp-block-paragraph">it would really it really mean the world to me I would really appreciate it so</p>



<p class="wp-block-paragraph">enjoy the cool music as as I fade into the darkness which is coming for us all.</p>



<p class="wp-block-paragraph">Thank you.</p>



<p class="wp-block-paragraph">I&#8217;m going to go ahead and get started.</p>



<p class="wp-block-paragraph">Thank you.</p>



<p class="wp-block-paragraph">Hello there.</p>



<p class="wp-block-paragraph">Let&#8217;s talk about the four types of…</p>



<p class="wp-block-paragraph">Hello there.</p>
<p>The post <a href="https://www.NeuralLantern.com/4-graph-types-undirected-vs-directed-weighted-vs-unweighted/">4 Graph Types: Undirected vs Directed, Weighted vs Unweighted</a> appeared first on <a href="https://www.NeuralLantern.com">NeuralLantern.com</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.NeuralLantern.com/4-graph-types-undirected-vs-directed-weighted-vs-unweighted/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
