<?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>weighted graph Archives - NeuralLantern.com</title>
	<atom:link href="https://www.NeuralLantern.com/tag/weighted-graph/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.NeuralLantern.com/tag/weighted-graph/</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>weighted graph Archives - NeuralLantern.com</title>
	<link>https://www.NeuralLantern.com/tag/weighted-graph/</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>Graph Basics in Data Structures: Nodes, Edges, and Representations</title>
		<link>https://www.NeuralLantern.com/graph-basics-in-data-structures-nodes-edges-and-representations/</link>
					<comments>https://www.NeuralLantern.com/graph-basics-in-data-structures-nodes-edges-and-representations/#respond</comments>
		
		<dc:creator><![CDATA[mike]]></dc:creator>
		<pubDate>Tue, 14 Jul 2026 22:43:47 +0000</pubDate>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Data Structures]]></category>
		<category><![CDATA[Graphs]]></category>
		<category><![CDATA[Videos]]></category>
		<category><![CDATA[adjacency list]]></category>
		<category><![CDATA[adjacency matrix]]></category>
		<category><![CDATA[C++ graph tutorial]]></category>
		<category><![CDATA[computer science basics]]></category>
		<category><![CDATA[data structures tutorial]]></category>
		<category><![CDATA[directed graph]]></category>
		<category><![CDATA[edge list]]></category>
		<category><![CDATA[graph data structure]]></category>
		<category><![CDATA[graph representations]]></category>
		<category><![CDATA[graph terminology]]></category>
		<category><![CDATA[graphs computer science]]></category>
		<category><![CDATA[nodes and edges]]></category>
		<category><![CDATA[undirected graph]]></category>
		<category><![CDATA[weighted graph]]></category>
		<guid isPermaLink="false">https://www.NeuralLantern.com/?p=412</guid>

					<description><![CDATA[<p>Graphs are collections of nodes and edges, or vertices and edges. In this tutorial we implement them as template classes in C++ so you can use custom data types for nodes and edge weights. We cover undirected unweighted graphs, then add directions and weights to show path costs between cities or network nodes.</p>
<p>The post <a href="https://www.NeuralLantern.com/graph-basics-in-data-structures-nodes-edges-and-representations/">Graph Basics in Data Structures: Nodes, Edges, and Representations</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 Basics in Data Structures: Nodes, Edges, and Representations" width="1380" height="776" src="https://www.youtube.com/embed/bz7VFYnTTQQ?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 graph basics: nodes, edges, neighbors, adjacency. Undirected vs directed, unweighted vs weighted. Representations including edge list, adjacency list, and matrix. Great intro for computer science students.</p>



<p class="wp-block-paragraph">00:00 Graph Basics Introduction<br>00:41 Nodes and Edges<br>01:20 Node and Edge Classes in C++<br>03:46 Simple Graph Examples<br>04:29 Adding Edges &#8211; Undirected Unweighted<br>05:26 Real World Uses of Graphs<br>07:08 Graph Terminology &#8211; Neighbors and Adjacency<br>08:32 Edges Incident on Nodes<br>09:20 Graph Representations &#8211; Edge List<br>09:59 Adjacency List<br>10:27 Adjacency Matrix<br>11:19 Directed Graphs<br>13:04 Weighted Graphs and Path Costs<br>15:24 Video Conclusion</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 in the context of data structures and computer science.</p>



<p class="wp-block-paragraph">I just want to talk to you about some of the basics of graphs, some ways that we could</p>



<p class="wp-block-paragraph">implement them in the future, and some terminology. Okay, so for starters, we have a little</p>



<p class="wp-block-paragraph">For starters, we have a little blank graph sheet here.</p>



<p class="wp-block-paragraph">If you saw my previous video, you&#8217;ll know already that this is a valid graph.</p>



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



<p class="wp-block-paragraph">There&#8217;s nothing on it.</p>



<p class="wp-block-paragraph">But let me draw some data in this graph.</p>



<p class="wp-block-paragraph">So graphs are collections of nodes and edges, or vertices and edges, or vertex and edges.</p>



<p class="wp-block-paragraph">The nodes themselves, they are custom classes sometimes, other times not.</p>



<p class="wp-block-paragraph">But you can imagine that they hold some sort of custom data.</p>



<p class="wp-block-paragraph">of custom data so i know i did this in my last video but i just want to emphasize that this graph</p>



<p class="wp-block-paragraph">class if we&#8217;re talking about c plus plus it should be a template class meaning we can specify a</p>



<p class="wp-block-paragraph">custom data type that the nodes will hold and also a custom data type that the edges will have as</p>



<p class="wp-block-paragraph">their weight you know typically when you see examples of this in the wild it&#8217;s just going to</p>



<p class="wp-block-paragraph">floats and strings exotic custom classes depending on your use case it may or may not be useful to do</p>



<p class="wp-block-paragraph">that but so we&#8217;ll have a data type for our nodes and i&#8217;ll call it like n type for like our node</p>



<p class="wp-block-paragraph">type and then we&#8217;ll do another one called e type for edge type i don&#8217;t know if that&#8217;s the best way</p>



<p class="wp-block-paragraph">to write those but i&#8217;m just going to do it anyway imagine that your glass your graph like we said</p>



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



<p class="wp-block-paragraph">You can imagine this as a vertex class.</p>



<p class="wp-block-paragraph">And I&#8217;m going to say that this node holds an n type data.</p>



<p class="wp-block-paragraph">And we&#8217;ll just call it data or node value or whatever you want.</p>



<p class="wp-block-paragraph">And then the same thing for the edges.</p>



<p class="wp-block-paragraph">We&#8217;ll say we have an edge class.</p>



<p class="wp-block-paragraph">I think in my last video, instead of doing a node class, I did a vertex class.</p>



<p class="wp-block-paragraph">It&#8217;s kind of all the same.</p>



<p class="wp-block-paragraph">We&#8217;ll say we have an e type and we&#8217;ll call it weight or value or data if you want.</p>



<p class="wp-block-paragraph">or value or data if you want but I think weight is a little bit closer to what we&#8217;re going to</p>



<p class="wp-block-paragraph">actually be doing with it and what do I mean by n type and e type like what are those data types</p>



<p class="wp-block-paragraph">there that just means these are placeholder tokens so when the user actually uses your graph by</p>



<p class="wp-block-paragraph">making an instance of your graph class like they create an actual graph off of your blueprint</p>



<p class="wp-block-paragraph">class here they might decide that they want integers inside of their nodes so that&#8217;s what</p>



<p class="wp-block-paragraph">They might decide that they want floats inside of your nodes, inside of their nodes, or some</p>



<p class="wp-block-paragraph">other data type.</p>



<p class="wp-block-paragraph">And so that means like at runtime or at, I think actually at compile time for C++, this</p>



<p class="wp-block-paragraph">end type would actually change to int if they chose to use integers on the inside.</p>



<p class="wp-block-paragraph">Same thing would happen for the edge, whatever they choose for the E-type token is just going</p>



<p class="wp-block-paragraph">to end up being used at compile time to replace that E-type.</p>



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



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



<p class="wp-block-paragraph">example, I got a fly in my room, it&#8217;s bothering me. Imagine the user says I want a graph.</p>



<p class="wp-block-paragraph">And I&#8217;ll call it G. And so they just have to kind of specify the two data types, maybe they want the</p>



<p class="wp-block-paragraph">graph to have integer values in the nodes. And maybe, you know, floating point double precision</p>



<p class="wp-block-paragraph">floating point values on the edges. In terms of weights, you know, you could do something like</p>



<p class="wp-block-paragraph">And we have edges and this graph right here is valid.</p>



<p class="wp-block-paragraph">It&#8217;s just one node kind of floating around by itself.</p>



<p class="wp-block-paragraph">This graph is also still valid, even though we have two nodes that are floating unconnected</p>



<p class="wp-block-paragraph">and also with the same value.</p>



<p class="wp-block-paragraph">I&#8217;m just going to change the value to be different.</p>



<p class="wp-block-paragraph">Maybe I&#8217;ll get rid of this extra thing here.</p>



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



<p class="wp-block-paragraph">We could have like a whole bunch of nodes all over the place and they don&#8217;t really have</p>



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



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



<p class="wp-block-paragraph">change this to like a three, maybe change this to like an 11, change that to a six.</p>



<p class="wp-block-paragraph">What else can I change?</p>



<p class="wp-block-paragraph">How about like a 13?</p>



<p class="wp-block-paragraph">How about like a 17?</p>



<p class="wp-block-paragraph">Are there any duplicates?</p>



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



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



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



<p class="wp-block-paragraph">The next thing that we could add to our graph is edges.</p>



<p class="wp-block-paragraph">So edges are, you know, little mini data structures that connect nodes.</p>



<p class="wp-block-paragraph">In this particular graph, I&#8217;m choosing to not have direction on my edges, which means this is a special type of graph.</p>



<p class="wp-block-paragraph">Or four that we talked about in the previous video.</p>



<p class="wp-block-paragraph">This is unweighted and also undirected, meaning there&#8217;s no weight assigned to the edges,</p>



<p class="wp-block-paragraph">which means that template weight value or the weight data type that we just talked about before.</p>



<p class="wp-block-paragraph">It&#8217;s kind of useless for this particular graph because I&#8217;m saying it&#8217;s unweighted.</p>



<p class="wp-block-paragraph">well uh all the edges if we wanted to travel through the graph along the edges we could just</p>



<p class="wp-block-paragraph">sort of go in any direction we felt like so this is unweighted and undirected</p>



<p class="wp-block-paragraph">um let&#8217;s see what else can i show you real fast okay so let&#8217;s talk about um well really fast let&#8217;s</p>



<p class="wp-block-paragraph">talk about the uses that you can have for a graph i think i talked about this in the last video</p>



<p class="wp-block-paragraph">but um you know what can we use graphs for some people think they&#8217;re databases they&#8217;re not really</p>



<p class="wp-block-paragraph">They&#8217;re not really databases.</p>



<p class="wp-block-paragraph">You could technically do that, but it would be pretty slow.</p>



<p class="wp-block-paragraph">There are much better data structures for databases.</p>



<p class="wp-block-paragraph">Really what graphs are mostly used for is to represent relationships between different</p>



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



<p class="wp-block-paragraph">I think I said this in the last video.</p>



<p class="wp-block-paragraph">Imagine if every single node that you see here is a city and the edges represent flight</p>



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



<p class="wp-block-paragraph">So we could fly between city seven and 11.</p>



<p class="wp-block-paragraph">Oh, that&#8217;s funny.</p>



<p class="wp-block-paragraph">I&#8217;m hungry for candy bar now.</p>



<p class="wp-block-paragraph">between city seven and 11 and back and you know back in the other direction if we want to but we</p>



<p class="wp-block-paragraph">can&#8217;t actually fly from city seven to six because there&#8217;s no edge there so we could represent</p>



<p class="wp-block-paragraph">computer networks we could represent road maps airports dependency graphs game maps you could</p>



<p class="wp-block-paragraph">say like every node is somewhere your character could stand and an edge represents where your</p>



<p class="wp-block-paragraph">or represents a connection to another node so that you know your character could move there</p>



<p class="wp-block-paragraph">there&#8217;s all sorts of different things that you could represent with the graph but</p>



<p class="wp-block-paragraph">it&#8217;s not necessarily a fast database it&#8217;s more of like a relationship</p>



<p class="wp-block-paragraph">not to be confused with relational database which is supposed to be lightning fast</p>



<p class="wp-block-paragraph">like if i wanted to search for the number 17 in this graph it&#8217;s not going to be log time like a</p>



<p class="wp-block-paragraph">proper database should be it&#8217;s not going to be constant time like a hash table based database</p>



<p class="wp-block-paragraph">or like a no sql or whatever um so we have undirected and unweighted uh we talked about</p>



<p class="wp-block-paragraph">like different uses let&#8217;s talk a little bit about terminology okay for starters notice how there&#8217;s</p>



<p class="wp-block-paragraph">no hierarchy in this graph in other videos we&#8217;re going to talk about binary search trees and we</p>



<p class="wp-block-paragraph">have to have like a hierarchy there&#8217;s no parent there&#8217;s no child in these graphs there&#8217;s no uh</p>



<p class="wp-block-paragraph">you know like grandchildren ancestors descendants because there&#8217;s not really like a hierarchy it&#8217;s</p>



<p class="wp-block-paragraph">It&#8217;s just things are connected to each other or they&#8217;re not.</p>



<p class="wp-block-paragraph">But we can have something called neighbors.</p>



<p class="wp-block-paragraph">For example, if you can reach a node in one hop, then you might be able to call that a neighbor.</p>



<p class="wp-block-paragraph">So 6 and 17, those are neighbors.</p>



<p class="wp-block-paragraph">Maybe I&#8217;ll just type neighbors right here.</p>



<p class="wp-block-paragraph">Oops, neighbors.</p>



<p class="wp-block-paragraph">Because we can reach them in one hop.</p>



<p class="wp-block-paragraph">Later on, or especially if I don&#8217;t remember to mention this,</p>



<p class="wp-block-paragraph">to our graph, then something is only considered a neighbor if you can reach it while respecting</p>



<p class="wp-block-paragraph">the direction of the graph. So we have like neighbors as 6 and 17. So that means 6 and 11</p>



<p class="wp-block-paragraph">are also neighbors. 6 and 12, not neighbors because they can&#8217;t reach each other in one hop.</p>



<p class="wp-block-paragraph">Let&#8217;s see. Adjacency is basically the same thing. I can&#8217;t remember. I think we use adjacency more</p>



<p class="wp-block-paragraph">often in directed graphs, but we could say that 6 and 17 are adjacent to each other,</p>



<p class="wp-block-paragraph">adjacent to each other, which is in this context, sort of a synonym for neighbors.</p>



<p class="wp-block-paragraph">Okay. Something else that I want to talk about in terms of edges,</p>



<p class="wp-block-paragraph">edges are considered to be incident upon nodes or vertices. So like, you know,</p>



<p class="wp-block-paragraph">if I have an arrow that just kind of points to these two things, I could say,</p>



<p class="wp-block-paragraph">you know, edge is incident upon three and 12. It&#8217;s just, it just means,</p>



<p class="wp-block-paragraph">and 12th. Okay, what else should we talk about? We should talk about connected versus, no,</p>



<p class="wp-block-paragraph">that&#8217;s another video. Okay, I&#8217;m going to do another video for connected versus not connected graphs.</p>



<p class="wp-block-paragraph">Maybe I should mention that there are three ways that we can represent a graph, and then maybe I&#8217;ll</p>



<p class="wp-block-paragraph">upgrade to a directed graph in a second. If you want to know about the four different types of</p>



<p class="wp-block-paragraph">graphs, see my previous video. But for now, I&#8217;m going to say there are three ways we could</p>



<p class="wp-block-paragraph">to represent these graphs. The first way, and I&#8217;m talking about how can you represent these</p>



<p class="wp-block-paragraph">graphs inside of the machine? Like how can your computer store and process this graph and maybe</p>



<p class="wp-block-paragraph">run algorithms on it? So the first way that we could represent, at least that I&#8217;m going to talk</p>



<p class="wp-block-paragraph">about, is an edge list. Edge lists are super simple. I&#8217;m going to do a dedicated video just</p>



<p class="wp-block-paragraph">for edge lists in the future. They&#8217;re not very fast, but they&#8217;re very easy to implement. So</p>



<p class="wp-block-paragraph">So honestly, if you&#8217;re just starting with this stuff, I would recommend just implementing an edge list first</p>



<p class="wp-block-paragraph">The next thing that you can do to represent a graph in the machine is make an adjacency list</p>



<p class="wp-block-paragraph">Adjacency lists are just a little bit more complicated</p>



<p class="wp-block-paragraph">But they&#8217;re typically faster than edge lists. Not always not in all cases and</p>



<p class="wp-block-paragraph">In terms of time complexity, you might not feel like you notice much of a difference</p>



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



<p class="wp-block-paragraph">the option of skipping a lot of examinations when you don&#8217;t need to examine something,</p>



<p class="wp-block-paragraph">you kind of skip it.</p>



<p class="wp-block-paragraph">We&#8217;ll talk more about that in the future.</p>



<p class="wp-block-paragraph">But we have an edge list and adjacency list of representation.</p>



<p class="wp-block-paragraph">And then we have an adjacency matrix.</p>



<p class="wp-block-paragraph">I wish I had spell check on this.</p>



<p class="wp-block-paragraph">Otherwise, this is going to be humiliating.</p>



<p class="wp-block-paragraph">An adjacency matrix is sometimes a lightning fast representation of a graph.</p>



<p class="wp-block-paragraph">At first, you might think, wow, that&#8217;s amazing.</p>



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



<p class="wp-block-paragraph">always going to use that. But all of these representations have strengths and weaknesses.</p>



<p class="wp-block-paragraph">None of them are better than the others in every single circumstance. So, you know, computer science</p>



<p class="wp-block-paragraph">and data structures, it&#8217;s all about weighing the pros and cons and picking the right representation</p>



<p class="wp-block-paragraph">or algorithm or whatever that&#8217;s best for you and the code and the data that you&#8217;re actually going</p>



<p class="wp-block-paragraph">to run. So three different ways that we can represent a graph in the future. And let&#8217;s see,</p>



<p class="wp-block-paragraph">already on this. We talked about the basic ways to use them sort of. We talked about neighbors</p>



<p class="wp-block-paragraph">and adjacency. Oh, I got to upgrade to a directed graph real fast just to kind of show you the</p>



<p class="wp-block-paragraph">difference here. Okay, so I&#8217;m going to duplicate this and I&#8217;m just going to start adding direction</p>



<p class="wp-block-paragraph">to all my edges. In my previous video, we talked about this. If you add direction to even one edge,</p>



<p class="wp-block-paragraph">then you have to add direction to all the other edges. Otherwise, you will have an invalid graph.</p>



<p class="wp-block-paragraph">graph so notice how I add a direction to one edge I now have an invalid graph so</p>



<p class="wp-block-paragraph">I&#8217;m just gonna do this change every single edge so that every single edge</p>



<p class="wp-block-paragraph">has a direction you know the basic thing we kind of talked about this in my</p>



<p class="wp-block-paragraph">previous video is that when traveling through the graph you&#8217;re supposed to</p>



<p class="wp-block-paragraph">only be able to travel in the direction of an edge which means if you look at</p>



<p class="wp-block-paragraph">this thing right now you&#8217;re supposed to be able to go from 11 to 7 but you&#8217;re</p>



<p class="wp-block-paragraph">be able to go from 7 to 11 because that violates the direction of the edge. When we add direction</p>



<p class="wp-block-paragraph">we&#8217;re sort of like reducing you know the flexibility of the graph so you can imagine</p>



<p class="wp-block-paragraph">that the previous version that was undirected it was sort of like every single edge here</p>



<p class="wp-block-paragraph">was really two edges pointing in opposite directions if that makes sense. So if you</p>



<p class="wp-block-paragraph">wanted to make sure that you could go back and forth between edge sorry between node 7 and 11</p>



<p class="wp-block-paragraph">the opposite direction you can also do things called parallel edges which is just to say</p>



<p class="wp-block-paragraph">i&#8217;m going to add multiple edges that that go in the same direction from the same start node to</p>



<p class="wp-block-paragraph">the same end node but i&#8217;m not going to do that here that makes it more complicated for some</p>



<p class="wp-block-paragraph">representations but we can just sort of add a whole bunch of edges i&#8217;m just going to say one</p>



<p class="wp-block-paragraph">going back and forth there and so forth remember in my previous video we talked about weighted edges</p>



<p class="wp-block-paragraph">about weighted edges which means we could add a cost to traveling along an edge so you could say</p>



<p class="wp-block-paragraph">something like uh i don&#8217;t know going from 7 to 12 let&#8217;s add another edge here if there was a cost</p>



<p class="wp-block-paragraph">on all these weights maybe i should just add that for fun we could maybe calculate which path would</p>



<p class="wp-block-paragraph">be better so let&#8217;s say we got ones over here and we got fives over here um and maybe like a like</p>



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



<p class="wp-block-paragraph">By the way, these sixes don&#8217;t have to be the same.</p>



<p class="wp-block-paragraph">You could just be two different numbers.</p>



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



<p class="wp-block-paragraph">And let me just see, have I added a weight to every single edge?</p>



<p class="wp-block-paragraph">So I know I did this in the previous video,</p>



<p class="wp-block-paragraph">but I want to do it again real fast.</p>



<p class="wp-block-paragraph">If we chose to take a path from seven to 12,</p>



<p class="wp-block-paragraph">and we said seven to 11, and then 11 to 12,</p>



<p class="wp-block-paragraph">that&#8217;s a very specific path, which is,</p>



<p class="wp-block-paragraph">it&#8217;s going to cost us five to go along that first,</p>



<p class="wp-block-paragraph">as you have to go along that first edge and then the second edge is going to cost us six</p>



<p class="wp-block-paragraph">and we&#8217;re only traveling along two edges so the total cost of that path is 11.</p>



<p class="wp-block-paragraph">On the other hand let me actually make this look pink.</p>



<p class="wp-block-paragraph">On the other hand if we&#8217;re taking a different path we might come up with a different cost</p>



<p class="wp-block-paragraph">depending on the graph. So let&#8217;s say we start at 11 start at 7 maybe we want to go down to 3</p>



<p class="wp-block-paragraph">to three and then from three we&#8217;ll go to 12 well that might be a different cost so i&#8217;m going to say</p>



<p class="wp-block-paragraph">the cost of this particular path is traveling it&#8217;s going to cost us one to go down that first edge</p>



<p class="wp-block-paragraph">and then a two to go down that second edge which means the total cost of getting to 12 is only 3</p>



<p class="wp-block-paragraph">if we take that orange path versus 11 if we take that pink path i hope you&#8217;re starting to visualize</p>



<p class="wp-block-paragraph">how graphs might be useful to visualize costs if this is a network map we just figured out that</p>



<p class="wp-block-paragraph">network map we just figured out that one route through the network might be faster or less</p>



<p class="wp-block-paragraph">costly than the other or if this is like an airport map maybe you do want to take you know</p>



<p class="wp-block-paragraph">that layover that goes down south instead of that layover that goes east in terms of</p>



<p class="wp-block-paragraph">i don&#8217;t know frequent fire miles that it costs you or money it costs you or jet fuel that it</p>



<p class="wp-block-paragraph">That&#8217;s all I wanted to talk about in this video.</p>



<p class="wp-block-paragraph">I&#8217;m going to make one more video today.</p>



<p class="wp-block-paragraph">Well, it&#8217;ll be released.</p>



<p class="wp-block-paragraph">I don&#8217;t know when, but like in my present moment.</p>



<p class="wp-block-paragraph">I&#8217;m going to make another video right after this</p>



<p class="wp-block-paragraph">where we just talk about connected graphs versus not connected graphs.</p>



<p class="wp-block-paragraph">Thank you so much for watching this video.</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">See you in the future.</p>



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



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



<p class="wp-block-paragraph">in the future.</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 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 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 troll me if you want to just wake me up in the middle of the night.</p>



<p class="wp-block-paragraph">Just subscribe and then I&#8217;ll just wake up.</p>



<p class="wp-block-paragraph">I promise that&#8217;s what will happen.</p>



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



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



<p class="wp-block-paragraph">this video and 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">if you have a suggestion for clarifications or errata or just future videos that you want to</p>



<p class="wp-block-paragraph">videos that you want to see please leave a comment or if you just want to say hey what&#8217;s up what&#8217;s</p>



<p class="wp-block-paragraph">going on you know just send me a comment whatever i also wake up for those in the middle of the</p>



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



<p class="wp-block-paragraph">would really appreciate it so again thank you so much for watching this video and um enjoy the cool</p>



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



<p class="wp-block-paragraph">Thank you.</p>
<p>The post <a href="https://www.NeuralLantern.com/graph-basics-in-data-structures-nodes-edges-and-representations/">Graph Basics in Data Structures: Nodes, Edges, and Representations</a> appeared first on <a href="https://www.NeuralLantern.com">NeuralLantern.com</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.NeuralLantern.com/graph-basics-in-data-structures-nodes-edges-and-representations/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 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>
