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

<channel>
	<title>graph algorithms Archives - NeuralLantern.com</title>
	<atom:link href="https://www.NeuralLantern.com/tag/graph-algorithms/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.NeuralLantern.com/tag/graph-algorithms/</link>
	<description></description>
	<lastBuildDate>Wed, 26 Aug 2026 17:23:29 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1</generator>

<image>
	<url>https://www.NeuralLantern.com/wp-content/uploads/2025/04/cropped-2025-04-04-Lantern-03-32x32.png</url>
	<title>graph algorithms Archives - NeuralLantern.com</title>
	<link>https://www.NeuralLantern.com/tag/graph-algorithms/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>How to Represent Undirected Weighted Graphs Using Edge Lists</title>
		<link>https://www.NeuralLantern.com/how-to-represent-undirected-weighted-graphs-using-edge-lists/</link>
					<comments>https://www.NeuralLantern.com/how-to-represent-undirected-weighted-graphs-using-edge-lists/#respond</comments>
		
		<dc:creator><![CDATA[mike]]></dc:creator>
		<pubDate>Wed, 26 Aug 2026 17:23:28 +0000</pubDate>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Data Structures]]></category>
		<category><![CDATA[Graphs]]></category>
		<category><![CDATA[Videos]]></category>
		<category><![CDATA[big o complexity]]></category>
		<category><![CDATA[computer science]]></category>
		<category><![CDATA[constant time lookup]]></category>
		<category><![CDATA[data structures]]></category>
		<category><![CDATA[edge list]]></category>
		<category><![CDATA[edge list representation]]></category>
		<category><![CDATA[graph algorithms]]></category>
		<category><![CDATA[graph representation]]></category>
		<category><![CDATA[graph theory]]></category>
		<category><![CDATA[node index]]></category>
		<category><![CDATA[programming graphs]]></category>
		<category><![CDATA[undirected graphs]]></category>
		<category><![CDATA[undirected weighted graph]]></category>
		<category><![CDATA[vertex list]]></category>
		<category><![CDATA[weighted graphs]]></category>
		<guid isPermaLink="false">https://www.NeuralLantern.com/?p=428</guid>

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



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="How to Represent Undirected Weighted Graphs Using Edge Lists" width="1380" height="776" src="https://www.youtube.com/embed/p1sD8ZQxFgg?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p class="wp-block-paragraph">We start from the previous diagram and add weight costs on every single edge. The graph is a tuple consisting of a vertex list and an edge list. Vertices are listed from left to right. Edges are stored as triples with starting node, ending node, and weight.</p>



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



<p class="wp-block-paragraph">and then i&#8217;ll i&#8217;ll just wake up i promise that&#8217;s what will happen also uh if you look at the middle</p>



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



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



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



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



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



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



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



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



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



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



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



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



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



<p class="wp-block-paragraph">Thank you.</p>
<p>The post <a href="https://www.NeuralLantern.com/how-to-represent-undirected-weighted-graphs-using-edge-lists/">How to Represent Undirected Weighted Graphs Using Edge Lists</a> appeared first on <a href="https://www.NeuralLantern.com">NeuralLantern.com</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.NeuralLantern.com/how-to-represent-undirected-weighted-graphs-using-edge-lists/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to Represent an Unweighted Undirected Graph with an Edge List</title>
		<link>https://www.NeuralLantern.com/how-to-represent-an-unweighted-undirected-graph-with-an-edge-list/</link>
					<comments>https://www.NeuralLantern.com/how-to-represent-an-unweighted-undirected-graph-with-an-edge-list/#respond</comments>
		
		<dc:creator><![CDATA[mike]]></dc:creator>
		<pubDate>Sat, 15 Aug 2026 13:59:02 +0000</pubDate>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Data Structures]]></category>
		<category><![CDATA[Graphs]]></category>
		<category><![CDATA[Videos]]></category>
		<category><![CDATA[adjacency alternative]]></category>
		<category><![CDATA[coding graphs]]></category>
		<category><![CDATA[constant time lookup]]></category>
		<category><![CDATA[edge list]]></category>
		<category><![CDATA[edge tuples]]></category>
		<category><![CDATA[graph algorithms]]></category>
		<category><![CDATA[graph data structure]]></category>
		<category><![CDATA[graph representation]]></category>
		<category><![CDATA[graph theory basics]]></category>
		<category><![CDATA[index based edges]]></category>
		<category><![CDATA[node list]]></category>
		<category><![CDATA[undirected graph]]></category>
		<category><![CDATA[undirected unweighted]]></category>
		<category><![CDATA[unweighted graph]]></category>
		<category><![CDATA[vertex list]]></category>
		<guid isPermaLink="false">https://www.NeuralLantern.com/?p=424</guid>

					<description><![CDATA[<p>Represent an unweighted undirected graph as a tuple of a vertex list and an edge list. Store nodes as indexable objects and list each edge once as a pair of indexes so you can reach any vertex in constant time.</p>
<p>The post <a href="https://www.NeuralLantern.com/how-to-represent-an-unweighted-undirected-graph-with-an-edge-list/">How to Represent an Unweighted Undirected Graph with an Edge List</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="How to Represent an Unweighted Undirected Graph with an Edge List" width="1380" height="776" src="https://www.youtube.com/embed/eIBfYgU1QIk?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 an unweighted undirected graph using an edge list. We build a sample graph with nodes and edges, then show the vertex list and edge list as tuples. See why storing indexes instead of node values makes lookups faster in constant time. Follow along as we list every connection without duplicates. This is the first in a series covering all four combinations of weighted and directed graphs with edge lists.</p>



<p class="wp-block-paragraph">00:00 Introduction to Edge List Representation<br>00:56 Drawing a Sample Graph with Nodes<br>02:05 Adding Undirected Unweighted Edges<br>03:10 Graph as a Tuple of Vertex and Edge Lists<br>03:40 Building the Vertex List<br>04:24 Storing Nodes as Objects with Indexes<br>06:13 Creating the Edge List of Tuples<br>07:00 Listing Edges by Node Values<br>11:36 Limitations of Storing Node Values<br>12:30 Switching to Index-Based Edge List<br>14:08 Constant-Time Lookups with Indexes<br>16:54 Summary of the Edge List Method<br>17:16 Preview of Next Videos in the Series<br>17:44 Closing Remarks and Subscribe Request</p>



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



<p class="wp-block-paragraph">Hello there! Let&#8217;s talk about representing an unweighted,</p>



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



<p class="wp-block-paragraph">Okay, so hopefully you watched my previous videos. If you haven&#8217;t, you might want to take a step back</p>



<p class="wp-block-paragraph">and check them out. We talked about, you know, what is a graph? What are some basic rules and</p>



<p class="wp-block-paragraph">terminology of a graph? Not graph and paper, but a graph. And we talked about representing paths</p>



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



<p class="wp-block-paragraph">representing paths in graphs using either a list of nodes or a list of edges and we&#8217;re going to</p>



<p class="wp-block-paragraph">take the edge list concept one step further and we&#8217;re going to actually just say this whole graph</p>



<p class="wp-block-paragraph">is being represented as an edge list it&#8217;ll make sense in a little bit but uh so the first thing</p>



<p class="wp-block-paragraph">i&#8217;m going to do is try to set up my stuff which is always set up wrong because i&#8217;m the one setting it</p>



<p class="wp-block-paragraph">up and it always gets messed up okay so i got a graph paper and uh oh i got to make this other</p>



<p class="wp-block-paragraph">thing full screen. Sorry.</p>



<p class="wp-block-paragraph">um i&#8217;m going to draw a random graph just real fast so i&#8217;m going to do i don&#8217;t know just some random</p>



<p class="wp-block-paragraph">nodes so remember a graph is a collection of nodes and edges doesn&#8217;t even have to have edges but you</p>



<p class="wp-block-paragraph">know we&#8217;ll just say so we&#8217;re going to do that&#8217;s bad let me try one more time we&#8217;ll get that okay</p>



<p class="wp-block-paragraph">so we get i&#8217;m trying to get this circle perfect because i&#8217;m gonna have to duplicate it rare okay</p>



<p class="wp-block-paragraph">i&#8217;ve got a node here and i&#8217;m just going to give it an arbitrary value i&#8217;m going to say it&#8217;s got a 3</p>



<p class="wp-block-paragraph">and then i&#8217;m going to duplicate it a few times just to make a graph that is a little bit</p>



<p class="wp-block-paragraph">interesting so we have something uh something to kind of challenge us i guess so it&#8217;s not</p>



<p class="wp-block-paragraph">incredibly boring um and then i&#8217;m going to change some of the values here and then well i&#8217;ll change</p>



<p class="wp-block-paragraph">the next ones and then we&#8217;ll start looking at edges which edges do we want to make okay so</p>



<p class="wp-block-paragraph">right now we&#8217;re just making a graph make this graph along with me if you want to or uh you</p>



<p class="wp-block-paragraph">you know, after you.</p>



<p class="wp-block-paragraph">to or uh you know after you think you understand do another graph on your own</p>



<p class="wp-block-paragraph">okay so i&#8217;m gonna make some edges right now remember this is going to be an undirected</p>



<p class="wp-block-paragraph">unweighted graph so the edges are just going to be lines they&#8217;re not going to have direction on</p>



<p class="wp-block-paragraph">them and they&#8217;re not going to have weights on them i&#8217;m going to do a line over here i&#8217;m just</p>



<p class="wp-block-paragraph">randomly doing lines doesn&#8217;t really matter um what we do exactly the point is going to be let&#8217;s</p>



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



<p class="wp-block-paragraph">be let&#8217;s practice representing this graph okay so i&#8217;m just making a random graph it&#8217;s kind of like</p>



<p class="wp-block-paragraph">a little bit dense i don&#8217;t know um maybe i&#8217;ll just stop there and then i&#8217;ll add a wonky line just</p>



<p class="wp-block-paragraph">just to prove we can be cool about this i don&#8217;t know we&#8217;ll do another one right here so it&#8217;s a</p>



<p class="wp-block-paragraph">slightly more interesting graph okay so um that&#8217;s just a graph and uh what i&#8217;m going to do is i&#8217;m</p>



<p class="wp-block-paragraph">going to say this is a, you know, an unweighted, oops, weighted.</p>



<p class="wp-block-paragraph">oops waited undirected uh graph and we&#8217;re going to use the edge list of representation</p>



<p class="wp-block-paragraph">i have spell check on this i really hope i do nope okay i guess i forgot to fix that months ago</p>



<p class="wp-block-paragraph">all right so then the next thing we&#8217;re going to do is uh we&#8217;re going to look at the idea of like</p>



<p class="wp-block-paragraph">how do we start with the edge list representation okay um the first thing i&#8217;m going to say is that</p>



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



<p class="wp-block-paragraph">that the our graph in an edge list representation is a tuple just meaning it&#8217;s you know some things</p>



<p class="wp-block-paragraph">put together if you know tuples encoding already uh the tuple is going to consist of a collection</p>



<p class="wp-block-paragraph">of vertices and edges what&#8217;s going to be an edge list don&#8217;t make fun of my ease please</p>



<p class="wp-block-paragraph">anyway so uh let&#8217;s do the first thing is going to be the vertex list so how do we represent the</p>



<p class="wp-block-paragraph">vertex list or the node list well i&#8217;m just going to say that my vertex list v</p>



<p class="wp-block-paragraph">to say that my vertex list v is equal to something and we&#8217;ll just put inside of this</p>



<p class="wp-block-paragraph">some vertices so the easiest way when you&#8217;re kind of drawing this right now is i&#8217;m just going to</p>



<p class="wp-block-paragraph">start putting the values of the node i&#8217;m going to say well here&#8217;s a three and uh i guess i could</p>



<p class="wp-block-paragraph">sort them for whatever reason uh if we&#8217;re going to do binary search on them later but we&#8217;re not</p>



<p class="wp-block-paragraph">going to i&#8217;m just going to maybe you know what i&#8217;ll go from left to right so that&#8217;ll make more</p>



<p class="wp-block-paragraph">sense, just visually. So I&#8217;ll go from left to right. 3, 13, 6, 12.</p>



<p class="wp-block-paragraph">3, 13, 6, 12, and a 15, and an 18.</p>



<p class="wp-block-paragraph">You can see all of those are nodes, right?</p>



<p class="wp-block-paragraph">Somebody stop me if I forgot a node.</p>



<p class="wp-block-paragraph">Okay, here&#8217;s the thing though.</p>



<p class="wp-block-paragraph">What are we actually storing in this vertex list?</p>



<p class="wp-block-paragraph">You probably don&#8217;t want to store the node values.</p>



<p class="wp-block-paragraph">I mean, you could be a little slow and dumb though,</p>



<p class="wp-block-paragraph">but we want the option to be a little bit faster later</p>



<p class="wp-block-paragraph">and also the option to turn these vertices into full classes,</p>



<p class="wp-block-paragraph">like give them extra properties and whatever.</p>



<p class="wp-block-paragraph">So what I&#8217;m going to say is that…</p>



<p class="wp-block-paragraph">So what I&#8217;m going to say is that I&#8217;m writing down the number 3 and the number 13 here for you, but you should imagine in your code you would have an object of type vertex or node, like a full class, and you would basically be stuffing pointers inside of that vector, inside of that list.</p>



<p class="wp-block-paragraph">I keep saying list. It is called an edge list representation, but you can probably imagine</p>



<p class="wp-block-paragraph">that this could just as easily be a vector. If you&#8217;ve seen my other videos, you know what that is.</p>



<p class="wp-block-paragraph">but uh so i want to be able to index this uh faster so for me personally i make this a vector</p>



<p class="wp-block-paragraph">and not an actual list but we&#8217;re going to call it a list anyway so three should be a pointer</p>



<p class="wp-block-paragraph">uh to a full node object uh smart pointer raw pointer whatever you want 13 should be a full</p>



<p class="wp-block-paragraph">pointer to an entire uh entirely different node object with just 13 assigned as its uh template</p>



<p class="wp-block-paragraph">type value because we&#8217;re making this a vector we can actually index</p>



<p class="wp-block-paragraph">can actually index uh the nodes right so like this is like index 0 for the 3 node index 1 for the 13</p>



<p class="wp-block-paragraph">node so i&#8217;m just going to put the indexes here whoops just to drive the point home a little</p>



<p class="wp-block-paragraph">bit further so if i told you hey let&#8217;s do uh the node at index 2 you would know that is the node</p>



<p class="wp-block-paragraph">that is in the very middle with the value of 6 because index 0 and 1 and 2 brings you to this</p>



<p class="wp-block-paragraph">node right here um which is a 6 so this is going to this is going to help us later let me save this</p>



<p class="wp-block-paragraph">Real fast, by the way.</p>



<p class="wp-block-paragraph">let me save this real fast by the way i&#8217;m just going to do that okay so uh the next thing that</p>



<p class="wp-block-paragraph">we need to do is uh make an edge list the edge list is really where it&#8217;s all at that&#8217;s really</p>



<p class="wp-block-paragraph">where all the data is it&#8217;s going to tell us exactly where everything is or it&#8217;s going to</p>



<p class="wp-block-paragraph">describe the whole graph pretty much so the edge list is another we&#8217;ll say that&#8217;s a list this could</p>



<p class="wp-block-paragraph">be like a linked list or vector or whatever you want i&#8217;m just going to say it&#8217;s a linked list</p>



<p class="wp-block-paragraph">and every item in the list is going to be another tuple so remember above the graph itself was a</p>



<p class="wp-block-paragraph">tuple containing a vertex list and an edge list so the edge list is a list of tuples</p>



<p class="wp-block-paragraph">meaning you know items bundled together for one tuple and then just like a list of those</p>



<p class="wp-block-paragraph">so what i&#8217;m going to try to do is describe every single edge uh one by one using one tuple each</p>



<p class="wp-block-paragraph">inside of the edge list so the first thing i&#8217;m going to do just you know to make this a little</p>



<p class="wp-block-paragraph">little bit easier.</p>



<p class="wp-block-paragraph">thing I want to do just you know to make this a little bit easier is I&#8217;m going to ignore the</p>



<p class="wp-block-paragraph">indexes for the vertex list and I&#8217;m going to say let&#8217;s describe everything happening from the three</p>



<p class="wp-block-paragraph">node outwards or just to every other node so the three node itself I&#8217;m going to look at its</p>



<p class="wp-block-paragraph">connections from left to right so the three node let&#8217;s just start by putting a three here</p>



<p class="wp-block-paragraph">maybe I should describe the legend real fast the tuples will basically be the start node</p>



<p class="wp-block-paragraph">and then the end node</p>



<p class="wp-block-paragraph">and then the end node and then the uh well the weight if there was a weight but we&#8217;re doing an</p>



<p class="wp-block-paragraph">unweighted graph so it&#8217;s really just going to be a tuple of two items the other thing to keep</p>



<p class="wp-block-paragraph">in mind is that because this is an undirected graph it really doesn&#8217;t make a difference what</p>



<p class="wp-block-paragraph">node is the start node and what node is the end node you can just swap them and it&#8217;s totally fine</p>



<p class="wp-block-paragraph">for me personally i&#8217;d rather you know sort before assigning the start node and end node that way</p>



<p class="wp-block-paragraph">when i read the graph later it&#8217;s a little bit faster because i wouldn&#8217;t have to check in both</p>



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



<p class="wp-block-paragraph">wouldn&#8217;t have to check in both directions but it really honestly doesn&#8217;t matter right now so</p>



<p class="wp-block-paragraph">start node and end node so the start node here is 3 and the end node is going to be 13 so that&#8217;s the</p>



<p class="wp-block-paragraph">first thing that we&#8217;re doing that&#8217;s the first tuple and then i&#8217;m going to say what else does</p>



<p class="wp-block-paragraph">the 3 connect to it connects to the not the 6 it connects to the 12. okay so the 3 connects to the</p>



<ol start="12" class="wp-block-list">
<li>again we could have said 12 comma 3 wouldn&#8217;t have mattered but i&#8217;m just going to try to keep</li>
</ol>



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



<p class="wp-block-paragraph">keep it sorted so then what else does the three connect to it connects to the uh the 18 doesn&#8217;t</p>



<p class="wp-block-paragraph">connect to the 15 and just confirm that if i&#8217;m looking at the three i can see three lines</p>



<p class="wp-block-paragraph">touching it so that means okay there&#8217;s got to be three tuples for the for the e for the three so</p>



<p class="wp-block-paragraph">i&#8217;m going to say three connects to the 18. and now i&#8217;ve described everything happened to do with the</p>



<p class="wp-block-paragraph">three note i will simply continue let&#8217;s see should i do like a new line maybe i should try to do a</p>



<p class="wp-block-paragraph">new line for every</p>



<p class="wp-block-paragraph">try to do a new line for every start node so this is easier to look at okay so i&#8217;m going to do that</p>



<p class="wp-block-paragraph">and i&#8217;m going to say the next line is we&#8217;ll start at the 13 this time so the 13 the 13 is also</p>



<p class="wp-block-paragraph">connected to the 3 because it goes in both directions with an undirected graph but we</p>



<p class="wp-block-paragraph">already described that connection with that first row so 3 comma 13 describes 13 comma 3 i don&#8217;t</p>



<p class="wp-block-paragraph">want to duplicate edges so forget about that let&#8217;s look at what else 13 is connected to it&#8217;s connected</p>



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



<p class="wp-block-paragraph">connected to it&#8217;s connected to the six so I&#8217;m just going to put 13 comma 6 and then that&#8217;s the end of</p>



<p class="wp-block-paragraph">the 13&#8217;s connections oh I could have used tabs for that hang on let me do that okay so now let&#8217;s look</p>



<p class="wp-block-paragraph">at the six node six is not connected to the three it is connected to the 13 but we already described</p>



<p class="wp-block-paragraph">the 13 6 connection in the previous row so forget that and then I&#8217;m just going to look to the right</p>



<p class="wp-block-paragraph">So the 6 is connected to the 12 and the 15.</p>



<p class="wp-block-paragraph">the 12 and the 15 12 and the 15 and also the 18 so i&#8217;m going to do 6 comma 12 maybe i&#8217;m going to</p>



<p class="wp-block-paragraph">do a copy paste here real fast just to make it easier 6 12 and 6 15 and 6 18 so again all i&#8217;m</p>



<p class="wp-block-paragraph">doing is describing you know what other nodes the current node is touching and i&#8217;m going to do that</p>



<p class="wp-block-paragraph">using a tuple that just has one node and has another node and that&#8217;s pretty much it so when</p>



<p class="wp-block-paragraph">we&#8217;re done with this</p>



<p class="wp-block-paragraph">it so when we&#8217;re done with this uh we&#8217;re going to look at the 12 node 12 node it&#8217;s connected to</p>



<p class="wp-block-paragraph">the six already handled it&#8217;s connected to the three it&#8217;s already handled and it&#8217;s connected</p>



<p class="wp-block-paragraph">to the 18 not handled yet so i&#8217;m going to say 12 goes out to 18. okay then we&#8217;re going to look at</p>



<p class="wp-block-paragraph">the 15 node 15 and 6 that&#8217;s already handled in that third row so forget that 15 and 18 that is</p>



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



<p class="wp-block-paragraph">15 and 18 that is not handled yet so we&#8217;re going to do 15.18 by the way this is one benefit of</p>



<p class="wp-block-paragraph">going from left to right visually all i really have to do is just look my eyes to the right and</p>



<p class="wp-block-paragraph">i&#8217;ll see nodes that i need to take care of and if i look my eyes to the left i&#8217;ll see nodes that i</p>



<p class="wp-block-paragraph">already took care of if that makes sense so now that we&#8217;re done with the 15 let&#8217;s see we did 3 13</p>



<p class="wp-block-paragraph">6 12 15 let&#8217;s just take care of the 18 if there&#8217;s anything left to take care of i can guarantee</p>



<p class="wp-block-paragraph">there&#8217;s not going to be.</p>



<p class="wp-block-paragraph">there&#8217;s not going to be because every node the 18 is the node on the farthest you know the furthest</p>



<p class="wp-block-paragraph">to the right so everything on the left is already handled so we don&#8217;t even have to put anything for</p>



<p class="wp-block-paragraph">the 18 node okay give me a second to clean up this graph real fast i think i want to maybe</p>



<p class="wp-block-paragraph">move this up a little bit okay uh now here&#8217;s the thing though we&#8217;ve only named node values so if</p>



<p class="wp-block-paragraph">we wanted to i don&#8217;t know let&#8217;s say check to see if the uh let&#8217;s say we have an edge we&#8217;re looking</p>



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



<p class="wp-block-paragraph">let&#8217;s say we have an edge we&#8217;re looking at the 3 comma 13 edge and we&#8217;re asking now do both of</p>



<p class="wp-block-paragraph">those nodes exist the edge describes these two nodes do they exist or uh maybe let&#8217;s look at</p>



<p class="wp-block-paragraph">the three here and we want to figure out just you know what other nodes does three touch so we start</p>



<p class="wp-block-paragraph">iterating through all the edges here how can we actually get a pointer to that node to manipulate</p>



<p class="wp-block-paragraph">it in the code right now it&#8217;s okay because it&#8217;s a diagram but you know this is not very</p>



<p class="wp-block-paragraph">diagram but you know this is not very good storing values directly in this notation in your code you</p>



<p class="wp-block-paragraph">probably want to store pointer uh pointers there but maybe not necessarily smart pointers they take</p>



<p class="wp-block-paragraph">a little bit of extra memory and it&#8217;s kind of cumbersome but um we could store an index into</p>



<p class="wp-block-paragraph">this vertex list to make things a little bit faster let me show you what i mean but first i&#8217;m</p>



<p class="wp-block-paragraph">going to duplicate this list that we just made already, duplicate it over here, and</p>



<p class="wp-block-paragraph">over here and maybe i&#8217;ll label the first one and i&#8217;ll say so we already have start node and end</p>



<p class="wp-block-paragraph">node i&#8217;m going to say e underscore by value so we&#8217;re storing the edge list by node values and</p>



<p class="wp-block-paragraph">then here we&#8217;re going to store nodes by their index in the vertex list so what do i mean by</p>



<p class="wp-block-paragraph">index well okay right here the first node that we&#8217;re mentioning is the three well look at the</p>



<p class="wp-block-paragraph">three node in the vertex list it&#8217;s at index zero right so i&#8217;m just going to put a zero</p>



<p class="wp-block-paragraph">zero right so i&#8217;m just gonna put a zero that&#8217;s it change it to an index then i look at the 13</p>



<p class="wp-block-paragraph">that&#8217;s index one and then i look at the three again that&#8217;s index zero um and then the 12 is</p>



<p class="wp-block-paragraph">index three and then the three again is index zero and the 18 is index five um if that was too fast</p>



<p class="wp-block-paragraph">i&#8217;m sorry just rewind and play it back in slow motion i think this video is already getting way</p>



<p class="wp-block-paragraph">too long so then i do the same thing for every single other tuple so the 13 node um that is</p>



<p class="wp-block-paragraph">node um that is index one so i&#8217;m going to put a one there the sixth node is index two go on to</p>



<p class="wp-block-paragraph">the next node so the sixth node is index two and then the 12 is index three and the six is two and</p>



<p class="wp-block-paragraph">the 15 is actually four the six again is two the 18 is five move on to the 12 node here uh that&#8217;s</p>



<p class="wp-block-paragraph">index 3, 18 node is index 5, and then</p>



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



<p class="wp-block-paragraph">and then uh the 15 is index 4 and then 18 again is index 5 so now on you know on both sides like</p>



<p class="wp-block-paragraph">in both of these edge lists uh i&#8217;m representing the graph it&#8217;s just that one can be a little bit</p>



<p class="wp-block-paragraph">more efficient than the other uh for example if i was going to let&#8217;s just say i wanted to scan</p>



<p class="wp-block-paragraph">every single edge in the graph well i could scan this list right here in linear time so linear time</p>



<p class="wp-block-paragraph">based on the number of edges and every single time i see an edge i can jump directly to the</p>



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



<p class="wp-block-paragraph">jump directly to the corresponding vertex or node in constant time because i have an index</p>



<p class="wp-block-paragraph">so for example let&#8217;s say uh you know this uh the sixth node um touching the 15 node so that</p>



<p class="wp-block-paragraph">particular edge right there let me i want to be more interactive here how can i do this okay</p>



<p class="wp-block-paragraph">uh suppose i want to do</p>



<p class="wp-block-paragraph">612 node and so that&#8217;s going to be pointing to this edge right up here i want to see you know</p>



<p class="wp-block-paragraph">what&#8217;s going on with both of those nodes well if i was looking at the value-based edge list</p>



<p class="wp-block-paragraph">and i wanted to get a hold of let&#8217;s say the sixth node itself so i can like do something with that</p>



<p class="wp-block-paragraph">vertex like delete it or move it or just whatever i would have to then scan the entire vertex list</p>



<p class="wp-block-paragraph">i&#8217;d have to go you know this one this one this one this one this one until i eventually found</p>



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



<p class="wp-block-paragraph">uh the corresponding value this wouldn&#8217;t really support duplicate values either</p>



<p class="wp-block-paragraph">uh it would be kind of hard to do that but uh i&#8217;ve i&#8217;ve slowed down the program it&#8217;s linear</p>



<p class="wp-block-paragraph">time based on the number of vertexes and if you&#8217;re already doing linear time based on the number of</p>



<p class="wp-block-paragraph">edges this is like it&#8217;s technically still a scalable data structure but it&#8217;s not super fast</p>



<p class="wp-block-paragraph">it could be faster on the other hand uh so like i just said uh sorry for repeating myself if we did</p>



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



<p class="wp-block-paragraph">the index based uh edge list it says two three here which is the 612 how can i find the sixth</p>



<p class="wp-block-paragraph">node well i just look at index two and instead of scanning oh gosh hang on</p>



<p class="wp-block-paragraph">i&#8217;m not as fast as i used to be okay dude there&#8217;s like did you see that uh</p>



<p class="wp-block-paragraph">a whole bunch of pink dots everywhere now what have i done okay</p>



<p class="wp-block-paragraph">So, uh…</p>



<p class="wp-block-paragraph">so uh i&#8217;m looking at the 612 edge i see that the indexes are two and three that means in constant</p>



<p class="wp-block-paragraph">time i can just jump directly to i guess i&#8217;ll put it in red in constant time index two right there</p>



<p class="wp-block-paragraph">and index three right there i do not have to scan the vertex list or the vector i guess if it was a</p>



<p class="wp-block-paragraph">vertex list like an actual linked list then i&#8217;d still have to scan because it&#8217;s linear time to do</p>



<p class="wp-block-paragraph">it but if it&#8217;s a vector</p>



<p class="wp-block-paragraph">But if it&#8217;s a vector or an array, I can just jump to an index in constant time, so it&#8217;s way faster.</p>



<p class="wp-block-paragraph">So what I&#8217;m trying to say is that this representation is what you want to do in the code when it comes to, I don&#8217;t know, representing diagrams and stuff.</p>



<p class="wp-block-paragraph">I don&#8217;t know. The one on the left is more human friendly.</p>



<p class="wp-block-paragraph">So this is the basic idea for how to represent an unweighted and also undirected graph in the machine using the edge list method of representation.</p>



<p class="wp-block-paragraph">i guess i&#8217;m going to cut the video i hope you learned a little bit of stuff and had</p>



<p class="wp-block-paragraph">a little bit of fun in the next video i think i&#8217;m going to do uh weighted uh undirected graphs</p>



<p class="wp-block-paragraph">and this i&#8217;m going to do four videos for this one representation type i&#8217;m going to do unweighted</p>



<p class="wp-block-paragraph">undirected and then weighted and undirected and then unweighted and directed i&#8217;m gonna</p>



<p class="wp-block-paragraph">do all four combinations all right see you in the next video thanks for watching</p>



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



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



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



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



<p class="wp-block-paragraph">world to me and it&#8217;ll help make more videos and grow this community so we&#8217;ll be able to do more</p>



<p class="wp-block-paragraph">videos, longer videos, better videos, or just I&#8217;ll be able to keep making videos in general.</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 and uh 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</p>



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



<p class="wp-block-paragraph">happens every single time so you could do it as a nice favor to me or you could you could troll me</p>



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



<p class="wp-block-paragraph">wake up i promise that&#8217;s what will happen also uh if you look at the middle of the screen right now</p>



<p class="wp-block-paragraph">you should see a QR code, which</p>



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



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



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



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



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



<p class="wp-block-paragraph">hey what&#8217;s up what&#8217;s going on you know just send</p>



<p class="wp-block-paragraph">what&#8217;s going on? You know, just send me a comment, whatever. I also wake up for those in the middle</p>



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



<p class="wp-block-paragraph">the world to me. I would really appreciate it. So again, thank you so much for watching this video</p>



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



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



<p class="wp-block-paragraph">Thanks for watching!</p>
<p>The post <a href="https://www.NeuralLantern.com/how-to-represent-an-unweighted-undirected-graph-with-an-edge-list/">How to Represent an Unweighted Undirected Graph with an Edge List</a> appeared first on <a href="https://www.NeuralLantern.com">NeuralLantern.com</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.NeuralLantern.com/how-to-represent-an-unweighted-undirected-graph-with-an-edge-list/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Graph Connectedness Explained: Connected Strongly Connected and Weakly Connected</title>
		<link>https://www.NeuralLantern.com/graph-connectedness-explained-connected-strongly-connected-and-weakly-connected/</link>
					<comments>https://www.NeuralLantern.com/graph-connectedness-explained-connected-strongly-connected-and-weakly-connected/#respond</comments>
		
		<dc:creator><![CDATA[mike]]></dc:creator>
		<pubDate>Sat, 25 Jul 2026 23:04:51 +0000</pubDate>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Data Structures]]></category>
		<category><![CDATA[Graphs]]></category>
		<category><![CDATA[Videos]]></category>
		<category><![CDATA[connected graph]]></category>
		<category><![CDATA[data structures]]></category>
		<category><![CDATA[directed graph]]></category>
		<category><![CDATA[graph algorithms]]></category>
		<category><![CDATA[graph connectedness]]></category>
		<category><![CDATA[graph paths]]></category>
		<category><![CDATA[graph theory]]></category>
		<category><![CDATA[nodes and edges]]></category>
		<category><![CDATA[strongly connected graph]]></category>
		<category><![CDATA[subgraphs]]></category>
		<category><![CDATA[undirected graph]]></category>
		<category><![CDATA[weakly connected graph]]></category>
		<guid isPermaLink="false">https://www.NeuralLantern.com/?p=417</guid>

					<description><![CDATA[<p>This video explains graph connectedness for both undirected and directed graphs. For undirected graphs a connected graph means every node can reach every other node through a path. Disconnected graphs have nodes that cannot reach others and may contain separate subgraphs. For directed graphs the terms change to strongly connected where every node reaches every other node following edge directions and weakly connected where the graph is connected if directions are ignored. Step by step examples show how adding edges turns a graph from not connected to weakly connected and finally to strongly connected.</p>
<p>The post <a href="https://www.NeuralLantern.com/graph-connectedness-explained-connected-strongly-connected-and-weakly-connected/">Graph Connectedness Explained: Connected Strongly Connected and Weakly Connected</a> appeared first on <a href="https://www.NeuralLantern.com">NeuralLantern.com</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="Graph Connectedness Explained: Connected Strongly Connected and Weakly Connected" width="1380" height="776" src="https://www.youtube.com/embed/u1D6huK1DCA?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p class="wp-block-paragraph">Hello there. Lets talk about graphs and whether they are connected or not or maybe whether they are strongly connected versus weakly connected. We look at undirected graphs first and show what makes a graph connected meaning every node can reach every other node by a path. We add edges and check the connections step by step while also noting subgraphs. Then we switch to directed graphs and explain strongly connected versus weakly connected. Strongly connected follows the edge directions for every path. Weakly connected ignores the directions and checks if the graph would still be connected. Examples show how adding edges changes the status of the graph.</p>



<p class="wp-block-paragraph">00:00 Introduction to Graph Connectedness<br>00:01 Drawing Nodes and a Disconnected Graph<br>01:56 Defining a Connected Graph<br>03:21 Introducing Subgraphs<br>04:48 Adding Edges to Create a Connected Graph<br>06:32 Adding Directions to Create a Directed Graph<br>08:03 Strongly Connected Versus Weakly Connected<br>08:34 Removing an Edge to Show Disconnection<br>09:29 Checking and Achieving Weak Connectivity<br>11:18 Adding Edges to Create a Strongly Connected Graph<br>13:20 Confirming the Strongly Connected Graph<br>13:32 Conclusion<br>14:17 Outro and Subscribe Request</p>



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



<p class="wp-block-paragraph">Hello there! Let&#8217;s talk about graphs and whether they&#8217;re connected or not or maybe whether they&#8217;re</p>



<p class="wp-block-paragraph">strongly connected versus weakly connected versus not connected. You never know.</p>



<p class="wp-block-paragraph">Okay, so hopefully you&#8217;ve seen my previous videos by now where we just talked about the basics of</p>



<p class="wp-block-paragraph">paper here i&#8217;m just going to start drawing a graph remember graphs are nodes and edges where</p>



<p class="wp-block-paragraph">the nodes are like little t-type data structures that can hold a specific type of value um so i&#8217;m</p>



<p class="wp-block-paragraph">going to say our our nodes hold integers um i think i made that one too small that&#8217;s okay</p>



<p class="wp-block-paragraph">and the edges uh could have weights or maybe not weights at all depending on if you have</p>



<p class="wp-block-paragraph">a weighted or an unweighted graph so i&#8217;m just going to start duplicating my nodes a little bit</p>



<p class="wp-block-paragraph">going to make a random graph. I need to probably change these values. Technically your graphs</p>



<p class="wp-block-paragraph">should support duplicate values in the nodes and also the weights, but I don&#8217;t want to because</p>



<p class="wp-block-paragraph">it&#8217;s easier to talk about the graph when all the values are distinct. So for starters, we have a</p>



<p class="wp-block-paragraph">bunch of nodes and they&#8217;re not really connected to each other. Is this a valid graph? Yeah it is.</p>



<p class="wp-block-paragraph">It&#8217;s just not a connected graph. So the terminology that we&#8217;re going to use for</p>



<p class="wp-block-paragraph">undirected graphs meaning the edges don&#8217;t have direction is going to be connected or not you</p>



<p class="wp-block-paragraph">know i usually just say a not connected graph or a disconnected graph so just basically like</p>



<p class="wp-block-paragraph">connected or not connected okay so this is a not connected graph i&#8217;m going to say not connected</p>



<p class="wp-block-paragraph">not cinnamon i&#8217;m thinking about food as usual</p>



<p class="wp-block-paragraph">connected graph why is it not a connected graph well to define what does it mean to be a connected</p>



<p class="wp-block-paragraph">graph it just means that every single node can find a path to every single other node</p>



<p class="wp-block-paragraph">in an undirected graph so we can just double check this real fast we can say you know can</p>



<p class="wp-block-paragraph">node number two find a path to uh you know let me put a question here let&#8217;s say we&#8217;re going to check</p>



<p class="wp-block-paragraph">you should be checking all the nodes one by one by one to see if if the node in particular can</p>



<p class="wp-block-paragraph">first node that can&#8217;t do it means the whole graph is not considered connected so you know two it</p>



<p class="wp-block-paragraph">can&#8217;t reach one so that means it&#8217;s not a connected graph so this is not a connected graph because one</p>



<p class="wp-block-paragraph">or more nodes violate the rule of you have to be able to reach every single other node okay so that</p>



<p class="wp-block-paragraph">means if we want a connected graph we probably just have to start adding edges so I&#8217;m going to</p>



<p class="wp-block-paragraph">go ahead and uh let me let me write the word connected here and then I can like either circle</p>



<p class="wp-block-paragraph">cross it out. So right now we have no, this is not a connected graph. I&#8217;m going to start adding</p>



<p class="wp-block-paragraph">edges. We&#8217;re going to stick with an undirected graph for now. So I&#8217;m going to connect two and one</p>



<p class="wp-block-paragraph">and two and nine, maybe one and 13. Actually, you know what? I&#8217;m going to erase this edge</p>



<p class="wp-block-paragraph">and maybe connect these over here. And the thing is, this is a valid graph that you&#8217;re looking at.</p>



<p class="wp-block-paragraph">it&#8217;s just not a connected graph.</p>



<p class="wp-block-paragraph">Some other terminology I didn&#8217;t mention in other videos</p>



<p class="wp-block-paragraph">is that we can have subgraphs.</p>



<p class="wp-block-paragraph">We have like a subgraph here and another subgraph here.</p>



<p class="wp-block-paragraph">Those are basically just two different portions of the same graph</p>



<p class="wp-block-paragraph">that appear to be connected within themselves.</p>



<p class="wp-block-paragraph">So those are subgraphs.</p>



<p class="wp-block-paragraph">You can probably tell right away that this is not a connected graph.</p>



<p class="wp-block-paragraph">You can double check to be sure.</p>



<p class="wp-block-paragraph">You know, it&#8217;s good to do things the hard way</p>



<p class="wp-block-paragraph">so you don&#8217;t get the wrong answer</p>



<p class="wp-block-paragraph">when you&#8217;re really trying to figure something out.</p>



<p class="wp-block-paragraph">So let&#8217;s look at two.</p>



<p class="wp-block-paragraph">So let&#8217;s look at two. Can two reach one? Yes. So that&#8217;s good. Can two reach nine? Yeah,</p>



<p class="wp-block-paragraph">it just hops to one and then hops to nine. So two can reach one and also nine. That&#8217;s good.</p>



<p class="wp-block-paragraph">Can two reach three? Nope. So this is still not a connected graph.</p>



<p class="wp-block-paragraph">Okay, I&#8217;m going to add one more edge. And then we&#8217;ll just check again.</p>



<p class="wp-block-paragraph">Where do you think I&#8217;m going to do it? Maybe if I add, I&#8217;ll add a funky edge going from 13 to like</p>



<p class="wp-block-paragraph">to like nine or something just so it feels a little bit more awkward okay let&#8217;s check one by</p>



<p class="wp-block-paragraph">one by one let me actually get rid of this edge on the previous slide so we can still say that&#8217;s</p>



<p class="wp-block-paragraph">not connected let&#8217;s check one by one by one every node must be able to reach every single other</p>



<p class="wp-block-paragraph">node so I&#8217;m gonna look at two and I&#8217;m gonna say all right two can it reach one yes can it reach</p>



<p class="wp-block-paragraph">to nine. So that&#8217;s good. Can it reach three? Yeah, it can go from two to one to nine to 13</p>



<p class="wp-block-paragraph">to three, and then it can reach three. And because we just saw that it went through 13 to reach three,</p>



<p class="wp-block-paragraph">that means two can reach every single other node. This is going to be more important as a double</p>



<p class="wp-block-paragraph">check when we have directed graphs in a second. So two is good. So the next thing you want to do is</p>



<p class="wp-block-paragraph">the next thing you want to do is just move on to some other node and do the exact same process you</p>



<p class="wp-block-paragraph">know can can nine reach a one yes okay it can reach a one can it reach a two yeah it goes through</p>



<p class="wp-block-paragraph">the one can it reach the 13 yep can it reach the three yep okay so we just check every single</p>



<p class="wp-block-paragraph">destination node starting at the node nine but here&#8217;s a little bit of a shortcut try to find a</p>



<p class="wp-block-paragraph">node that is right next to a node that you know can reach everything and if the node in question</p>



<p class="wp-block-paragraph">that previously connected node, vertex,</p>



<p class="wp-block-paragraph">then we know that that node in particular is also connected.</p>



<p class="wp-block-paragraph">So what I&#8217;m saying is the one,</p>



<p class="wp-block-paragraph">instead of checking every single other node in the graph,</p>



<p class="wp-block-paragraph">which might be really hard</p>



<p class="wp-block-paragraph">if we have a whole bunch of nodes in our graph,</p>



<p class="wp-block-paragraph">we&#8217;ll just ask, can the one reach the two?</p>



<p class="wp-block-paragraph">Because if it can, the two can reach everything.</p>



<p class="wp-block-paragraph">So that means the one actually can reach everything as well.</p>



<p class="wp-block-paragraph">So the one can reach the two.</p>



<p class="wp-block-paragraph">So the one is connected to everything.</p>



<p class="wp-block-paragraph">the three, the three can reach the one and the one can reach everything. I&#8217;m doing things the</p>



<p class="wp-block-paragraph">hard way on purpose just to prove a point. So the three can reach everything. The 13 can reach the</p>



<p class="wp-block-paragraph">three in one hop. So the 13 can reach everything. The nine, it can reach the one and it can reach</p>



<p class="wp-block-paragraph">the 13 in one hop. So the nine can also actually reach everything. So that means this is indeed a</p>



<p class="wp-block-paragraph">the next thing that we&#8217;re going to do is add direction to our graph you know we could do like</p>



<p class="wp-block-paragraph">more examples maybe leave a comment if you want me to do some super extra complicated examples for</p>



<p class="wp-block-paragraph">just a undirected and connected graph i&#8217;m ignoring weight by the way because it doesn&#8217;t really matter</p>



<p class="wp-block-paragraph">for these purposes so let&#8217;s upgrade our graph so uh maybe i should put a question mark here</p>



<p class="wp-block-paragraph">that would have been a good idea we&#8217;re just asking you know is it connected or not</p>



<p class="wp-block-paragraph">And I&#8217;m just going to start adding direction to every single edge.</p>



<p class="wp-block-paragraph">Let&#8217;s see if I&#8217;m following my notes.</p>



<p class="wp-block-paragraph">Single node, subgraphs, right?</p>



<p class="wp-block-paragraph">Well, it wasn&#8217;t connected at first and then we started adding.</p>



<p class="wp-block-paragraph">Okay, so that&#8217;s basically okay.</p>



<p class="wp-block-paragraph">Let&#8217;s add direction to every single edge.</p>



<p class="wp-block-paragraph">So every single edge has to have a direction</p>



<p class="wp-block-paragraph">or every single edge has to have no direction.</p>



<p class="wp-block-paragraph">You can&#8217;t really mix and match.</p>



<p class="wp-block-paragraph">So I&#8217;m just going to go through every single edge and add a direction like this.</p>



<p class="wp-block-paragraph">and you know to be fair I think I&#8217;ve said this in my other videos an undirected edge is kind of the</p>



<p class="wp-block-paragraph">same thing as a directed edge going in or two directed edges going in both directions so this</p>



<p class="wp-block-paragraph">3 and 13 what&#8217;s going on with my computer hello this 3 and 13 edge it would have kind of been the</p>



<p class="wp-block-paragraph">same as just having two edges going in opposite directions so maybe I&#8217;ll just do that right now</p>



<p class="wp-block-paragraph">for this huge weird edge I&#8217;m just going to put like an arrow over here instead of totally redrawing</p>



<p class="wp-block-paragraph">Then I double check that every single edge has a direction so that I have a valid graph.</p>



<p class="wp-block-paragraph">And now I can ask, is this connected or not?</p>



<p class="wp-block-paragraph">Actually, when it comes to a directed graph, you don&#8217;t really have connected or not anymore.</p>



<p class="wp-block-paragraph">You have strongly connected versus weakly connected.</p>



<p class="wp-block-paragraph">Maybe I should just separate these words and then just kind of like move them.</p>



<p class="wp-block-paragraph">So let&#8217;s get rid of this.</p>



<p class="wp-block-paragraph">to this save this over here move it down so what am i talking about um well first let me remove an</p>



<p class="wp-block-paragraph">edge real quick i&#8217;ll remove this edge right here so now we have two sub graphs in this graph you</p>



<p class="wp-block-paragraph">can tell for sure if this was an undirected graph it would not be connected but now that we&#8217;re</p>



<p class="wp-block-paragraph">dealing with direction we have to ask is it strongly connected versus weakly so what does</p>



<p class="wp-block-paragraph">can every node reach every other node if you obey the direction of the edges so that&#8217;s clearly not</p>



<p class="wp-block-paragraph">true there&#8217;s no edge at all that even connects this one and nine so it&#8217;s definitely not strongly</p>



<p class="wp-block-paragraph">connected weakly connected on the other hand means if you temporarily ignore the direction</p>



<p class="wp-block-paragraph">of the edges then could you consider the graph connected so if we pretended that there were no</p>



<p class="wp-block-paragraph">arrows here would we think that it&#8217;s a connected graph if the answer is yes then it&#8217;s at least a</p>



<p class="wp-block-paragraph">So this is not weakly connected because if this was an undirected graph, it&#8217;s not even connected at all.</p>



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



<p class="wp-block-paragraph">I&#8217;m going to go ahead and add another edge here.</p>



<p class="wp-block-paragraph">So I&#8217;m going to add an edge from 2 to 9.</p>



<p class="wp-block-paragraph">So the first thing is, oh, sorry, I have to add another edge.</p>



<p class="wp-block-paragraph">Let me do from 1 to 13 for fun.</p>



<p class="wp-block-paragraph">So now the first thing is, let&#8217;s check to see if this is a strongly connected graph.</p>



<p class="wp-block-paragraph">node is unreachable by any other node so this is definitely not strongly</p>



<p class="wp-block-paragraph">connected because all the other nodes would be would have to be able to reach</p>



<p class="wp-block-paragraph">too alright so first thing you could do just to very quickly check is just look</p>



<p class="wp-block-paragraph">at every single node and ask is it reachable you know by anything and then</p>



<p class="wp-block-paragraph">after that you can do things the hard way so it&#8217;s not strongly connected what</p>



<p class="wp-block-paragraph">about weakly connected if we ignore the direction of the graph sorry if we</p>



<p class="wp-block-paragraph">then yeah, we could reach every single node from every other node. Let&#8217;s just double check that</p>



<p class="wp-block-paragraph">real fast. I&#8217;m going to say, you know, the two node, if we&#8217;re ignoring direction, can it reach</p>



<p class="wp-block-paragraph">the one? Yes. Can it reach the 13? Yes. The three? Yes. Can it reach the nine? Yes. So that means the</p>



<p class="wp-block-paragraph">two node is sort of like weakly connected to every other node in the graph. Do the same thing for the</p>



<p class="wp-block-paragraph">one node. Previously, we just said, you know, check everything one by one or use a shortcut.</p>



<p class="wp-block-paragraph">one by one or use a shortcut. So I&#8217;m going to use the shortcut. The one node, if we ignore direction</p>



<p class="wp-block-paragraph">can reach the two nodes. So I&#8217;m going to say the one is weakly connected, at least everything else.</p>



<p class="wp-block-paragraph">I&#8217;m not even going to check to see if it&#8217;s strongly connected to everything else. I think the answer</p>



<p class="wp-block-paragraph">is no, but we do the same thing for the 13. The 13 can reach the one pretty fast. The three can</p>



<p class="wp-block-paragraph">reach the 13. The nine can reach the two. So every single node can weakly reach. That&#8217;s not an</p>



<p class="wp-block-paragraph">a weakly connected graph. Okay, cool. How can we make this a strongly connected graph? Well,</p>



<p class="wp-block-paragraph">we just have to add a bunch of edges. So that&#8217;s what I&#8217;m going to do. I&#8217;m going to kind of like</p>



<p class="wp-block-paragraph">look at what is missing here. So we&#8217;ll ask the two, can the two reach and let&#8217;s obey the direction</p>



<p class="wp-block-paragraph">of the edges again. Can the two reach the one? Yes. Can the two reach the 13? Yes. Can it reach</p>



<p class="wp-block-paragraph">Yes, so that means right now the two is strongly connected to everything else.</p>



<p class="wp-block-paragraph">So we&#8217;re on track for a strongly connected graph.</p>



<p class="wp-block-paragraph">We then look at the one node and we realize that the one node,</p>



<p class="wp-block-paragraph">it can reach the 13 and the three and it can also reach the nine,</p>



<p class="wp-block-paragraph">but it can&#8217;t reach the two.</p>



<p class="wp-block-paragraph">That&#8217;s one thing that was blocking us last time from saying strongly connected.</p>



<p class="wp-block-paragraph">So we just have to add another edge if we want this to be a strongly connected graph.</p>



<p class="wp-block-paragraph">We have to figure out how can we get the one to reach the two.</p>



<p class="wp-block-paragraph">the 2 we can go through something if we want to that&#8217;s fine we can also just</p>



<p class="wp-block-paragraph">write an edge that just goes back to the 2 but that&#8217;s I don&#8217;t know that&#8217;s kind of</p>



<p class="wp-block-paragraph">boring I&#8217;m gonna make an edge that goes from 1 to 9 and then I&#8217;m gonna make an</p>



<p class="wp-block-paragraph">edge that goes from 9 to 2 so looking at the 1 node it can now reach the 2 if we</p>



<p class="wp-block-paragraph">go through the 9 so that&#8217;s good can the 1 reach the 9 yes can the 1 reach the 13</p>



<p class="wp-block-paragraph">three yes okay so the one node can now reach every single other node so now we&#8217;re a little bit more</p>



<p class="wp-block-paragraph">on track for a strongly connected graph look at the 13 node can it reach the one node um actually</p>



<p class="wp-block-paragraph">yes if we go from 13 to 9 and then 2 and then 1 we can reach the one node since we know the one</p>



<p class="wp-block-paragraph">node is connected to everything else we can now say that the 13 node is connected to everything</p>



<p class="wp-block-paragraph">13 so i&#8217;ll say three is connected to everything the nine node can reach the two node which is</p>



<p class="wp-block-paragraph">connected to everything so that means the nine node is also connected to everything and at this</p>



<p class="wp-block-paragraph">point we now have a strongly connected graph it&#8217;s not weakly connected it&#8217;s stronger than that</p>



<p class="wp-block-paragraph">any questions um so let&#8217;s see we added a bunch of uh edges i think maybe this is actually all we</p>



<p class="wp-block-paragraph">need to do for this particular video because we&#8217;re just going to talk about connectedness</p>



<p class="wp-block-paragraph">going to talk about connectedness about 15 minutes not too bad all right so i think i&#8217;m</p>



<p class="wp-block-paragraph">going to leave it here drop a comment if you want to do way more complicated examples if you want to</p>



<p class="wp-block-paragraph">provide me a sample graph that&#8217;s awful and i could just i don&#8217;t know in the sometime in the future i</p>



<p class="wp-block-paragraph">could record a video about it um or just let me know your thoughts thank you so much for watching</p>



<p class="wp-block-paragraph">this video i hope you had a little bit of fun and i hope you learned a little bit of stuff i&#8217;m outie</p>



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



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



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



<p class="wp-block-paragraph">Whoa. Can you see that guy in the background?</p>



<p class="wp-block-paragraph">Oh, shoot.</p>



<p class="wp-block-paragraph">I&#8217;m just kidding.</p>



<p class="wp-block-paragraph">I set that as the screensaver.</p>



<p class="wp-block-paragraph">Hey, everybody.</p>



<p class="wp-block-paragraph">Thanks for watching this video again from the bottom of my heart.</p>



<p class="wp-block-paragraph">I really appreciate it.</p>



<p class="wp-block-paragraph">I do hope you did learn something and have some fun.</p>



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



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



<p class="wp-block-paragraph">social media website that you&#8217;re looking at right now. It would really mean the world to me and it&#8217;ll</p>



<p class="wp-block-paragraph">help make more videos and grow this community. So we&#8217;ll be able to do more videos, longer videos,</p>



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



<p class="wp-block-paragraph">and subscribe. You know, sometimes I&#8217;m sleeping in the middle of the night and I just wake up</p>



<p class="wp-block-paragraph">or followed. It just wakes me up and I get filled with joy. That&#8217;s exactly what happens every single</p>



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



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



<p class="wp-block-paragraph">that&#8217;s what will happen. Also if you look at the middle of the screen right now you should see a</p>



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



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



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



<p class="wp-block-paragraph">and uh if you have a suggestion for uh uh clarifications or errata or just future videos</p>



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



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



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



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



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



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



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



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



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



<p class="wp-block-paragraph">Yeah, I think I&#8217;m good.</p>



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



<p class="wp-block-paragraph">Let&#8217;s talk about whether a graph is connected or not,</p>



<p class="wp-block-paragraph">or maybe whether it&#8217;s strongly connected or weakly connected or not connected at all.</p>



<p class="wp-block-paragraph">You never know.</p>
<p>The post <a href="https://www.NeuralLantern.com/graph-connectedness-explained-connected-strongly-connected-and-weakly-connected/">Graph Connectedness Explained: Connected Strongly Connected and Weakly Connected</a> appeared first on <a href="https://www.NeuralLantern.com">NeuralLantern.com</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.NeuralLantern.com/graph-connectedness-explained-connected-strongly-connected-and-weakly-connected/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
