<?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 data structure Archives - NeuralLantern.com</title>
	<atom:link href="https://www.NeuralLantern.com/tag/graph-data-structure/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.NeuralLantern.com/tag/graph-data-structure/</link>
	<description></description>
	<lastBuildDate>Mon, 12 Oct 2026 06:55:17 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.3</generator>

<image>
	<url>https://www.NeuralLantern.com/wp-content/uploads/2025/04/cropped-2025-04-04-Lantern-03-32x32.png</url>
	<title>graph data structure Archives - NeuralLantern.com</title>
	<link>https://www.NeuralLantern.com/tag/graph-data-structure/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>How to Represent an Undirected Unweighted Graph with an Adjacency Matrix</title>
		<link>https://www.NeuralLantern.com/how-to-represent-an-undirected-unweighted-graph-with-an-adjacency-matrix/</link>
					<comments>https://www.NeuralLantern.com/how-to-represent-an-undirected-unweighted-graph-with-an-adjacency-matrix/#respond</comments>
		
		<dc:creator><![CDATA[mike]]></dc:creator>
		<pubDate>Mon, 12 Oct 2026 06:55:15 +0000</pubDate>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Data Structures]]></category>
		<category><![CDATA[Graphs]]></category>
		<category><![CDATA[Videos]]></category>
		<category><![CDATA[adjacency matrix]]></category>
		<category><![CDATA[adjacency matrix tutorial]]></category>
		<category><![CDATA[algorithms]]></category>
		<category><![CDATA[coding interview]]></category>
		<category><![CDATA[computer science]]></category>
		<category><![CDATA[data structures]]></category>
		<category><![CDATA[edge list vs adjacency matrix]]></category>
		<category><![CDATA[graph algorithms]]></category>
		<category><![CDATA[graph data structure]]></category>
		<category><![CDATA[graph representation]]></category>
		<category><![CDATA[graph theory]]></category>
		<category><![CDATA[matrix graph]]></category>
		<category><![CDATA[self loop graph]]></category>
		<category><![CDATA[undirected graph]]></category>
		<category><![CDATA[unweighted graph]]></category>
		<guid isPermaLink="false">https://www.NeuralLantern.com/?p=437</guid>

					<description><![CDATA[<p>Represent an undirected unweighted graph as an adjacency matrix of ones and zeros. A one in the cell at row i and column j means an edge exists between those nodes. Because the graph is undirected the matrix is symmetric across the diagonal. Changing a cell from zero to one adds an edge and changing it back removes the edge. Self-loops appear on the diagonal. This representation stores only the connection relationships and supports constant-time edge checks.</p>
<p>The post <a href="https://www.NeuralLantern.com/how-to-represent-an-undirected-unweighted-graph-with-an-adjacency-matrix/">How to Represent an Undirected Unweighted Graph with an Adjacency Matrix</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 Undirected Unweighted Graph with an Adjacency Matrix" width="1380" height="776" src="https://www.youtube.com/embed/tzCqcHK-9Tw?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 store an undirected unweighted graph inside a computer using an adjacency matrix. In this video we build a matrix of ones and zeros where each cell shows whether an edge exists between two nodes. Rows represent the starting node and columns represent the ending node. Because the graph is undirected the matrix ends up as a mirror image across the diagonal. We also cover how to add or remove edges by simply changing a cell value, how self-loops appear on the diagonal, and why this representation lets you check any connection in constant time. The computer only needs the connection data, not the physical layout of the nodes. Perfect if you are learning graph theory, data structures, or preparing for algorithm interviews.</p>



<p class="wp-block-paragraph">0:00 Introduction to Adjacency Matrix<br>1:16 Arrays as Two Dimensional Matrices<br>2:20 Ones and Zeros Represent Edges<br>3:44 Filling the Matrix for Node One<br>6:20 Completing the Remaining Nodes<br>10:38 Finished Matrix and Practice Advice<br>11:02 Computer Stores Only Connections<br>11:40 Mirror Property of Undirected Graphs<br>14:17 Adding and Removing Edges<br>17:31 Parallel Edges Are Not Supported<br>18:50 Conclusion and Future Topics</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! Let&#8217;s talk about representing an undirected,</p>



<p class="wp-block-paragraph">unweighted graph in your machine using an adjacency matrix.</p>



<p class="wp-block-paragraph">All right everybody, so I hope you&#8217;ve been watching my previous videos.</p>



<p class="wp-block-paragraph">I just did some videos on edge list representation. Before that,</p>



<p class="wp-block-paragraph">I talked about like the basics of graphs and like terminology and stuff like that.</p>



<p class="wp-block-paragraph">You don&#8217;t need</p>



<p class="wp-block-paragraph">terminology and stuff like that. You don&#8217;t need to watch the edge list videos if you&#8217;re not</p>



<p class="wp-block-paragraph">interested in representing using an edge list, but you should probably at least watch the graphing</p>



<p class="wp-block-paragraph">video basics if you haven&#8217;t. Okay, so what are we looking at right here? I&#8217;ve just made a graph.</p>



<p class="wp-block-paragraph">I made a random graph and I kind of like, you know, wired up a bunch of edges to make it kind</p>



<p class="wp-block-paragraph">of complicated. I then spent a whole bunch of time making this very beautiful two-dimensional</p>



<p class="wp-block-paragraph">Matrix, just for you. I&#8217;m sorry you couldn&#8217;t watch me</p>



<p class="wp-block-paragraph">you i&#8217;m sorry you couldn&#8217;t watch me write it you know i sometimes i&#8217;ll i&#8217;ll have people say that</p>



<p class="wp-block-paragraph">they like when i yell at myself while i&#8217;m drawing something sorry it took too long but anyway what</p>



<p class="wp-block-paragraph">we&#8217;re going to do is take these concepts and put them together and we&#8217;ll we&#8217;ll say this is how we</p>



<p class="wp-block-paragraph">can represent the graph inside of the machine so what am i even talking about uh well the first</p>



<p class="wp-block-paragraph">thing is imagine an array in your machine right an array of integers like an array of uh i don&#8217;t know</p>



<p class="wp-block-paragraph">doubles you know an array of whatever so i&#8217;m gonna say like 5.4 and like you know 7.7 and</p>



<p class="wp-block-paragraph">8 and you know like whatever so i&#8217;m just like making an array of numbers probably a lot of</p>



<p class="wp-block-paragraph">you like this notation but inside your machine an array uh that is one-dimensional could be</p>



<p class="wp-block-paragraph">interpreted as a two-dimensional array so this matrix up here on the top right of the screen</p>



<p class="wp-block-paragraph">that&#8217;s really a one-dimensional ray array inside of the computer it&#8217;s just that we choose to treat</p>



<p class="wp-block-paragraph">it as a two-dimensional array.</p>



<p class="wp-block-paragraph">a two-dimensional array and um it&#8217;s important to understand that you can jump to any cell</p>



<p class="wp-block-paragraph">in constant time uh just like you can with a one-dimensional array because getting to a certain</p>



<p class="wp-block-paragraph">cell is really just a simple mathematical formula i think i&#8217;m going to do time complexities of this</p>



<p class="wp-block-paragraph">in a different video so for now i&#8217;m just going to say here&#8217;s how we represent the diagram first off</p>



<p class="wp-block-paragraph">let me label this so i don&#8217;t forget uh this is definitely where the heck is that how come that&#8217;s</p>



<p class="wp-block-paragraph">That&#8217;s not working, okay.</p>



<p class="wp-block-paragraph">Oh, this is definitely.</p>



<p class="wp-block-paragraph">okay uh this is definitely an undirected unweighted graph</p>



<p class="wp-block-paragraph">trying to type with the pen in my hand i have to change my brain okay</p>



<p class="wp-block-paragraph">so this is an undirected and also unweighted graph</p>



<p class="wp-block-paragraph">so for the purposes of this particular graph if it&#8217;s unweighted that means in the cells um we&#8217;re</p>



<p class="wp-block-paragraph">just we&#8217;re not going to put weight because there&#8217;s no weight in the graph i mean you could if you</p>



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



<p class="wp-block-paragraph">the graph i mean you could if you wanted to just say that every edge was a weight of one if it was</p>



<p class="wp-block-paragraph">unweighted but i&#8217;m gonna say let&#8217;s forget about you know what is the actual value of an edge</p>



<p class="wp-block-paragraph">because we don&#8217;t really have that in this graph and we&#8217;ll just say that if an edge exists then uh</p>



<p class="wp-block-paragraph">we&#8217;ll put a we&#8217;ll put a one there and if an edge does not exist we&#8217;ll put a zero in there</p>



<p class="wp-block-paragraph">at the corresponding cell we&#8217;ll talk about what cells mean you know what edges in a second</p>



<p class="wp-block-paragraph">The other thing is because it&#8217;s undirected, it doesn&#8217;t actually matter.</p>



<p class="wp-block-paragraph">It doesn&#8217;t actually matter whether we&#8217;re describing a start node or an end node with an edge because it goes in both directions.</p>



<p class="wp-block-paragraph">So actually what&#8217;s going to happen is this graph is going to be a mirror.</p>



<p class="wp-block-paragraph">I&#8217;ll show it to you in a second, but for now we&#8217;ll just say it&#8217;s not going to matter what the direction is.</p>



<p class="wp-block-paragraph">I like to do starting nodes as the rows, even though I just said that doesn&#8217;t matter.</p>



<p class="wp-block-paragraph">It&#8217;s just the way that I like to do things because it makes it easier to remember how to do this when you start to add direction to the graph.</p>



<p class="wp-block-paragraph">the graph so one by one i&#8217;m going to look at every single node and i&#8217;m going to chart what exactly is</p>



<p class="wp-block-paragraph">going on with that node in the two-dimensional matrix so i&#8217;m going to start uh i guess i&#8217;m going</p>



<p class="wp-block-paragraph">to go numerically because that&#8217;s kind of easier i&#8217;m going to start with the node index 1. so i&#8217;m</p>



<p class="wp-block-paragraph">going to go here at row 1 because i&#8217;m going to say that&#8217;s my start node and um where does the</p>



<p class="wp-block-paragraph">one node connect to it connects to node number two so um let&#8217;s see actually i think i&#8217;m going</p>



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



<p class="wp-block-paragraph">actually, I think I&#8217;m going to say that it is not self-connected. I mean, if you consider your</p>



<p class="wp-block-paragraph">graph to have by default every node is connected to itself, you could put a one there across that</p>



<p class="wp-block-paragraph">little diagonal line that you see. But I&#8217;m going to put a zero saying that these nodes are not</p>



<p class="wp-block-paragraph">connected to themselves, unless we do a little loop from a node to itself. Maybe I should add</p>



<p class="wp-block-paragraph">that later. So node number one is connected to node number two. I&#8217;m going to write a one there</p>



<p class="wp-block-paragraph">to say that there is a connection.</p>



<p class="wp-block-paragraph">What do I mean by that?</p>



<p class="wp-block-paragraph">What do I mean by that? Just to clarify, this, let&#8217;s see, the one two edge, that edge that I</p>



<p class="wp-block-paragraph">just highlighted in pink, that corresponds to this cell. So the start node, I&#8217;m going to do</p>



<p class="wp-block-paragraph">that in maybe orange. The start node is the row number. And maybe I&#8217;ll do like, I don&#8217;t know,</p>



<p class="wp-block-paragraph">light blue or something, baby blue for the destination node. And that&#8217;s going to be the</p>



<p class="wp-block-paragraph">column number. So basically just like the row</p>



<p class="wp-block-paragraph">so basically just like the row number is where the node where you start what node you start at</p>



<p class="wp-block-paragraph">the column is what node you end at um and then if you see a zero or a one in that particular cell</p>



<p class="wp-block-paragraph">at that particular row and column it&#8217;ll tell you whether there&#8217;s an edge there or not</p>



<p class="wp-block-paragraph">so i&#8217;m going to duplicate this real fast so i can erase the markings i just made</p>



<p class="wp-block-paragraph">and i&#8217;m going to say oops whoa whoa what&#8217;s happening here i want to get dude</p>



<p class="wp-block-paragraph">dude are you kidding me can i just erase it like that yeah okay i keep thinking these are lines i</p>



<p class="wp-block-paragraph">actually made a diagram in a different program so these are not even lines i can&#8217;t even erase this</p>



<p class="wp-block-paragraph">it sucks so um we did the uh the two node so i&#8217;m just going to quickly say the one is connected</p>



<p class="wp-block-paragraph">also to the three yes or no yes that&#8217;s a one uh then the one node is connected to the four</p>



<p class="wp-block-paragraph">uh yes i&#8217;m going to put a one the one node is connected to the</p>



<p class="wp-block-paragraph">the one node is connected to the five yes so i&#8217;m going to put a one a lot of connections this is</p>



<p class="wp-block-paragraph">pretty good uh and then also to the six and not to the seven so if it&#8217;s not connected to the seven</p>



<p class="wp-block-paragraph">i&#8217;m going to put a zero there okay we do the same thing for the two node so i&#8217;m going to start at</p>



<p class="wp-block-paragraph">the two node actually let me duplicate this start at the two node and i&#8217;m going to say</p>



<p class="wp-block-paragraph">we&#8217;re now looking at the two node oh my gosh</p>



<p class="wp-block-paragraph">okay I&#8217;m gonna put a question mark I guess we&#8217;re looking at the two node and</p>



<p class="wp-block-paragraph">well is the two node connected to the one node yes we just saw that was true</p>



<p class="wp-block-paragraph">is the two node connected to itself we said in this particular graph there are</p>



<p class="wp-block-paragraph">no self connections by default because I want to be able to draw them if that</p>



<p class="wp-block-paragraph">ends up being true is the two connected to the three I see a connection there I</p>



<p class="wp-block-paragraph">see an edge so I&#8217;m gonna put a one is it connected to the four I don&#8217;t see an</p>



<p class="wp-block-paragraph">edge, I&#8217;m going to put a zero.</p>



<p class="wp-block-paragraph">the four i don&#8217;t see an edge so i&#8217;m gonna put a zero to the five uh yes to the six uh yes and to</p>



<p class="wp-block-paragraph">the seven um whoops what did i just do uh the two is not connected to the six i was thinking of the</p>



<p class="wp-block-paragraph">one uh the two connected to the seven yes okay so we just basically do this over and over and</p>



<p class="wp-block-paragraph">over again until you have a giant matrix of ones and zeros which can very efficiently store um</p>



<p class="wp-block-paragraph">store um a graph i mean this is pretty much it this is all you have to do i want to do uh let&#8217;s</p>



<p class="wp-block-paragraph">see three is connected to i&#8217;m gonna say one one and a two and it&#8217;s not connected to itself by</p>



<p class="wp-block-paragraph">default put a zero it&#8217;s connected to the four nope it&#8217;s connected to the five</p>



<p class="wp-block-paragraph">oh gosh i gotta make that even connected to the five</p>



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



<p class="wp-block-paragraph">i&#8217;m losing my brain here uh yes and then uh three connected to the six right three connected to the</p>



<p class="wp-block-paragraph">seven uh no okay somebody leave me a comment uh if you have a corruption and then for the four</p>



<p class="wp-block-paragraph">um let&#8217;s see dude this is getting out of control for the four um</p>



<p class="wp-block-paragraph">yes i&#8217;m just going to look at the diagram pretty soon we&#8217;re going to start realizing something fun</p>



<p class="wp-block-paragraph">about an underachiever.</p>



<p class="wp-block-paragraph">realizing something fun about an undirected graph in that it is a mirror in this matrix</p>



<p class="wp-block-paragraph">so technically you only have to do like one half of the matrix in your code if you wanted to</p>



<p class="wp-block-paragraph">so i&#8217;m gonna say the one exists um one you know what i should have done i should have just filled</p>



<p class="wp-block-paragraph">this whole thing with zeros and then change the zeros to ones um okay so the four is connected</p>



<p class="wp-block-paragraph">to the two, yes or no? Nope. All the fours connected to the three? Nope. Fours connect&#8230;</p>



<p class="wp-block-paragraph">Nope, or it&#8217;s connected to the 4, we&#8217;re going to say no by default, or it&#8217;s connected to the 5, nope, it&#8217;s only connected to the two things, it&#8217;ll just be the 7 I guess, okay, so we&#8217;re going to put a nope there, and then a yep for the 7.</p>



<p class="wp-block-paragraph">Okay, then the 5 is connected to 1, 2, 3, 4, what if I just did a whole bunch of zeros, and then I overwrote only the ones, that would probably be a little bit faster.</p>



<p class="wp-block-paragraph">bit faster except for this first time i&#8217;m doing it okay and then i&#8217;ll just copy paste this</p>



<p class="wp-block-paragraph">tap it past okay i should have done this should i edit that out of the video i don&#8217;t know it&#8217;s fun</p>



<p class="wp-block-paragraph">to watch my mistakes so five to one yes five to two no five to three yes uh five to four</p>



<p class="wp-block-paragraph">we say no by default five to six yes five to seven yes okay i think that was a little bit</p>



<p class="wp-block-paragraph">faster let&#8217;s see how fast it is this time uh the six is connected to the five well let&#8217;s say it&#8217;s</p>



<p class="wp-block-paragraph">the one and then uh a one a three a five and a seven right six one three five and seven okay so</p>



<p class="wp-block-paragraph">going to be one, three, five, seven. That&#8217;s probably right. Again, leave me a comment.</p>



<p class="wp-block-paragraph">probably right again leave me a comment if i screwed something up i did not practice this</p>



<p class="wp-block-paragraph">i&#8217;m just kind of winging it the seven is connected to uh five six two four five six okay so i&#8217;m gonna</p>



<p class="wp-block-paragraph">do two four five six whoops that six didn&#8217;t happen let me just do it again okay all right</p>



<p class="wp-block-paragraph">so now we have it this is a uh an adjacency matrix that represents the graph that you see on the left</p>



<p class="wp-block-paragraph">Keep in mind that if you saw a matrix, I mean in general you should probably practice doing this both ways, like look at a graph and then you generate the matrix that corresponds to the graph you&#8217;re looking at, but also maybe you&#8217;re presented with a matrix and you would draw the graph that the matrix represents.</p>



<p class="wp-block-paragraph">Try to remember that your computer, in almost every program, it doesn&#8217;t really know where these nodes are unless it&#8217;s a drawing program or something.</p>



<p class="wp-block-paragraph">if we&#8217;re just talking about relationships which is what graphs are kind of good at um then your</p>



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



<p class="wp-block-paragraph">um then your computer doesn&#8217;t really care that the three is on the top it doesn&#8217;t really know that</p>



<p class="wp-block-paragraph">definitely not with this adjacency matrix representation uh the three in the computer&#8217;s</p>



<p class="wp-block-paragraph">mind could just be anywhere it doesn&#8217;t really even think of where the nodes are it&#8217;s just</p>



<p class="wp-block-paragraph">this node is connected to that node and that node is connected to that node and so forth</p>



<p class="wp-block-paragraph">we just position the nodes somewhere because we&#8217;re humans and it&#8217;s fun to look at diagrams</p>



<p class="wp-block-paragraph">but really this is all your computer knows just all these you know little connection numbers here</p>



<p class="wp-block-paragraph">So, let me duplicate this and I&#8217;ll show you something funny about an undirected graph real quick.</p>



<p class="wp-block-paragraph">Let&#8217;s see, how much time? 12? That&#8217;s not too bad.</p>



<p class="wp-block-paragraph">So, if I do, let&#8217;s see, I want to do a little highlighter here.</p>



<p class="wp-block-paragraph">I don&#8217;t get a chance to do that very often.</p>



<p class="wp-block-paragraph">I&#8217;m going to do a highlighter across this identity line, you know, the little diagonal.</p>



<p class="wp-block-paragraph">It&#8217;s all zeros for self-connects.</p>



<p class="wp-block-paragraph">Maybe I&#8217;ll change that in a second.</p>



<p class="wp-block-paragraph">I&#8217;ll make one of the nodes connect to itself.</p>



<p class="wp-block-paragraph">But notice how if I do this.</p>



<p class="wp-block-paragraph">notice how if i do this in green</p>



<p class="wp-block-paragraph">notice oh is the highlighter going to be green now keep screwing that up notice how we have</p>



<p class="wp-block-paragraph">a mirror happening along the identity line so we have like some some ones here right uh so we have</p>



<p class="wp-block-paragraph">like two three four five six in the one row if we look at the one column we&#8217;ll also see two three</p>



<p class="wp-block-paragraph">four five six it&#8217;s a mirror uh pick you know any other numbers you want let&#8217;s look at the uh the</p>



<p class="wp-block-paragraph">The three column.</p>



<p class="wp-block-paragraph">at the uh the three column the three column has a one there and then it&#8217;s got another one and a one</p>



<p class="wp-block-paragraph">down below at the five and the six so three is hitting two and five and six uh let me look at</p>



<p class="wp-block-paragraph">the diagram just to make sure i&#8217;m doing this right three is hitting uh two and five and six</p>



<p class="wp-block-paragraph">it should be hitting one also oh right i didn&#8217;t highlight that because it was already highlighted</p>



<p class="wp-block-paragraph">by that other thing okay so then let&#8217;s look at the three row and see if we see a mirror also so</p>



<p class="wp-block-paragraph">two and then the five and the six notice how it&#8217;s a mirror you just tilt your head uh and it really</p>



<p class="wp-block-paragraph">looks like a mirror and sometimes i like to make a joke when i&#8217;m explaining this to people uh you</p>



<p class="wp-block-paragraph">know if you just kind of like tilt your head a little bit it looks like some cheesy broccoli</p>



<p class="wp-block-paragraph">i&#8217;m personally not a fan of cheesy broccoli i mean i love cheese and if you put cheese on my</p>



<p class="wp-block-paragraph">broccoli i&#8217;m gonna be happy but it turns what&#8217;s what was healthy food into junk food it&#8217;s like</p>



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



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



<p class="wp-block-paragraph">be healthy i&#8217;m gonna have broccoli today good for me yay i&#8217;ve earned a double bacon cheeseburger</p>



<p class="wp-block-paragraph">later but then i put cheese all over the broccoli and suddenly it&#8217;s junk food again and it&#8217;s like i</p>



<p class="wp-block-paragraph">do get a little fiber and everything but it&#8217;s like not really being that healthy anymore so what</p>



<p class="wp-block-paragraph">should i do i should just get some more healthy food to make up for the junk food broccoli and</p>



<p class="wp-block-paragraph">then i&#8217;m gonna end up putting cheese on the other healthy food and then i just it&#8217;s like an endless</p>



<p class="wp-block-paragraph">cycle and i just keep eating and eating and eating pretty soon there&#8217;s no room for a cheeseburger</p>



<p class="wp-block-paragraph">pretty soon there&#8217;s no room for a cheeseburger i don&#8217;t know what to tell you anyway um so this</p>



<p class="wp-block-paragraph">is how you make an undirected unweighted graph uh with an adjacency matrix we&#8217;ll talk about time</p>



<p class="wp-block-paragraph">complexities and other stuff in the future um uh oh i should talk about how to modify edges okay</p>



<p class="wp-block-paragraph">so first off let me let me create a self loop real fast i&#8217;m going to create a self connect</p>



<p class="wp-block-paragraph">but let&#8217;s say that this four is actually connecting to itself uh with like a little</p>



<p class="wp-block-paragraph">self-loop. Okay. So, oh shoot.</p>



<p class="wp-block-paragraph">so oh shoot how can i get rid of all those is that going to work yes it&#8217;s going to work yes</p>



<p class="wp-block-paragraph">i should have duplicated this and drawn on the duplicate maybe i actually did that forgot about</p>



<p class="wp-block-paragraph">it already i don&#8217;t even know okay sometimes i have clever ideas and then i forget what i was</p>



<p class="wp-block-paragraph">doing then the ideas are just not that clever anymore yes okay what about that highlighter</p>



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



<p class="wp-block-paragraph">i seem to have screwed up the graph somehow</p>



<p class="wp-block-paragraph">nope okay forget it um we&#8217;ll just pretend that it&#8217;s fine so i added that four connection</p>



<p class="wp-block-paragraph">so how do i modify the adjacency matrix well the four uh row starting node with the four column</p>



<p class="wp-block-paragraph">ending node was a zero indicating no self-connection now that i do have a self-connection</p>



<p class="wp-block-paragraph">And I&#8217;ll just put a one there, four and.</p>



<p class="wp-block-paragraph">connection i&#8217;ll just put a one there four and four and that&#8217;s it pretty easy right let me duplicate</p>



<p class="wp-block-paragraph">this other one so i don&#8217;t have to erase that stuff a second time a second time and um what</p>



<p class="wp-block-paragraph">will we do if we wanted to uh well let me actually sorry everybody let me just do that four one more</p>



<p class="wp-block-paragraph">time so i think i just erased the wrong thing we&#8217;ll say four and four is a one now and so how</p>



<p class="wp-block-paragraph">can we say that some new edge has been added?</p>



<p class="wp-block-paragraph">some new edge has been added let&#8217;s add an edge between one and seven pretty easy we just go to</p>



<p class="wp-block-paragraph">the right spot in the adjacency matrix let me add a little orange line here adjacency matrix</p>



<p class="wp-block-paragraph">to connect number one and number seven that would be uh we could do row one and column seven</p>



<p class="wp-block-paragraph">so that&#8217;s going to be a one and then remember this graph is undirected so it has to be a mirror</p>



<p class="wp-block-paragraph">so that means uh row seven and column one also has to be a one so it&#8217;s still a mirror</p>



<p class="wp-block-paragraph">so it&#8217;s still a mirror that&#8217;s pretty much it and remember you can access these cells</p>



<p class="wp-block-paragraph">in constant time which we&#8217;ll talk about more in a future video pretty nice how do you delete</p>



<p class="wp-block-paragraph">uh an edge let&#8217;s pretend that we wanted to delete uh the connection between the five and the three</p>



<p class="wp-block-paragraph">so i&#8217;m going to put maybe like a little squiggly line right here squiggly line saying that that</p>



<p class="wp-block-paragraph">edge is gone i can&#8217;t actually erase that because this is a i guess i could draw white over it but</p>



<p class="wp-block-paragraph">you would still see that the blue lines are covered so the five and three connection is</p>



<p class="wp-block-paragraph">gone now how do</p>



<p class="wp-block-paragraph">and three connection is gone now how do we do that in inside the adjacency matrix again just look at</p>



<p class="wp-block-paragraph">the uh row five column three change that one to a zero and then row three column five change that</p>



<p class="wp-block-paragraph">also to a zero oops not a nine that&#8217;s how you get rid of something so you add something uh by just</p>



<p class="wp-block-paragraph">changing a number you get rid of something by just changing a number self connects are pretty easy</p>



<p class="wp-block-paragraph">um and then of course after you make the matrix you want to just double check that you did it</p>



<p class="wp-block-paragraph">correctly I&#8217;m not going to do that right now</p>



<p class="wp-block-paragraph">check that you did it correctly i&#8217;m not going to do that right now maybe this is a good exercise</p>



<p class="wp-block-paragraph">for you at home you can just kind of like look and try to find my mistakes because that&#8217;s hilarious</p>



<p class="wp-block-paragraph">right um what else can i tell you uh this particular scheme does not support um parallel</p>



<p class="wp-block-paragraph">edges or edges that start at the same start node and end at the same end node as well i&#8217;m not</p>



<p class="wp-block-paragraph">really describing that very well so for example what if i had this three node that is connected</p>



<p class="wp-block-paragraph">to the 2 node and I want it</p>



<p class="wp-block-paragraph">that is connected to the two node and I wanted to add a second connection for some reason like</p>



<p class="wp-block-paragraph">there are reasons to do that I want to have another edge going from three to two and from</p>



<p class="wp-block-paragraph">two to three so now this is a parallel edge it&#8217;s the same it&#8217;s an edge that connects the same two</p>



<p class="wp-block-paragraph">nodes as some other edge how can I represent that inside of this matrix right now I can&#8217;t</p>



<p class="wp-block-paragraph">but one way to do this is to say that every cell where&#8217;s the three and the two there it is every</p>



<p class="wp-block-paragraph">cell in your matrix is not a one or a zero integer but every cell</p>



<p class="wp-block-paragraph">or a zero integer but every cell is its own uh individual linked list or array or vector or</p>



<p class="wp-block-paragraph">something that can hold multiple numbers so just to add a little notation here if if that&#8217;s what</p>



<p class="wp-block-paragraph">i mean then i can say well we&#8217;ll just say that there are two edges by saying that cell has an</p>



<p class="wp-block-paragraph">array of two numbers each number representing a connection not the not the greatest way to</p>



<p class="wp-block-paragraph">to represent it, but in our future</p>



<p class="wp-block-paragraph">greatest way to represent it. But in our future videos, we&#8217;re going to do like directed graphs</p>



<p class="wp-block-paragraph">and weighted graphs. It&#8217;ll make a little bit more sense. But long story short, this is how you do it.</p>



<p class="wp-block-paragraph">Let&#8217;s see. We did 20 minutes for this video. I think I&#8217;m feeling okay. There&#8217;s lots of properties</p>



<p class="wp-block-paragraph">and other stuff that we can talk about with graphs. But for now, I&#8217;m just going to stop right</p>



<p class="wp-block-paragraph">here. Thank you so much for watching this video. I hope you learned a little bit of stuff and had</p>



<p class="wp-block-paragraph">a little bit of fun. Tell your friends and I&#8217;ll see you in the next video.</p>



<p class="wp-block-paragraph">next video how do i stop the recording hey everybody thanks for watching this video again</p>



<p class="wp-block-paragraph">from the bottom of my heart i really appreciate it i do hope you did learn something and have some</p>



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



<p class="wp-block-paragraph">channel or these videos or whatever it is you do on the current social media website that you&#8217;re</p>



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



<p class="wp-block-paragraph">and</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 do me a kindness</p>



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



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



<p class="wp-block-paragraph">just subscribe and then I&#8217;ll just wake up.</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 videos i published and the services and</p>



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



<p class="wp-block-paragraph">clarifications or erratics</p>



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



<p class="wp-block-paragraph">if you just want to say, Hey, what&#8217;s up, what&#8217;s going on? You know, just send me a comment,</p>



<p class="wp-block-paragraph">whatever. I also wake up for those in the middle of the night. I get, I wake up in a cold sweat</p>



<p class="wp-block-paragraph">and I&#8217;m like, it would really, it would really mean the world to me. I would really appreciate</p>



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



<p class="wp-block-paragraph">coming for us all.</p>



<p class="wp-block-paragraph">Thanks for watching!</p>
<p>The post <a href="https://www.NeuralLantern.com/how-to-represent-an-undirected-unweighted-graph-with-an-adjacency-matrix/">How to Represent an Undirected Unweighted Graph with an Adjacency Matrix</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-undirected-unweighted-graph-with-an-adjacency-matrix/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 Basics in Data Structures: Nodes, Edges, and Representations</title>
		<link>https://www.NeuralLantern.com/graph-basics-in-data-structures-nodes-edges-and-representations/</link>
					<comments>https://www.NeuralLantern.com/graph-basics-in-data-structures-nodes-edges-and-representations/#respond</comments>
		
		<dc:creator><![CDATA[mike]]></dc:creator>
		<pubDate>Tue, 14 Jul 2026 22:43:47 +0000</pubDate>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Data Structures]]></category>
		<category><![CDATA[Graphs]]></category>
		<category><![CDATA[Videos]]></category>
		<category><![CDATA[adjacency list]]></category>
		<category><![CDATA[adjacency matrix]]></category>
		<category><![CDATA[C++ graph tutorial]]></category>
		<category><![CDATA[computer science basics]]></category>
		<category><![CDATA[data structures tutorial]]></category>
		<category><![CDATA[directed graph]]></category>
		<category><![CDATA[edge list]]></category>
		<category><![CDATA[graph data structure]]></category>
		<category><![CDATA[graph representations]]></category>
		<category><![CDATA[graph terminology]]></category>
		<category><![CDATA[graphs computer science]]></category>
		<category><![CDATA[nodes and edges]]></category>
		<category><![CDATA[undirected graph]]></category>
		<category><![CDATA[weighted graph]]></category>
		<guid isPermaLink="false">https://www.NeuralLantern.com/?p=412</guid>

					<description><![CDATA[<p>Graphs are collections of nodes and edges, or vertices and edges. In this tutorial we implement them as template classes in C++ so you can use custom data types for nodes and edge weights. We cover undirected unweighted graphs, then add directions and weights to show path costs between cities or network nodes.</p>
<p>The post <a href="https://www.NeuralLantern.com/graph-basics-in-data-structures-nodes-edges-and-representations/">Graph Basics in Data Structures: Nodes, Edges, and Representations</a> appeared first on <a href="https://www.NeuralLantern.com">NeuralLantern.com</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="Graph Basics in Data Structures: Nodes, Edges, and Representations" width="1380" height="776" src="https://www.youtube.com/embed/bz7VFYnTTQQ?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p class="wp-block-paragraph">Learn graph basics: nodes, edges, neighbors, adjacency. Undirected vs directed, unweighted vs weighted. Representations including edge list, adjacency list, and matrix. Great intro for computer science students.</p>



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



<p class="wp-block-paragraph">Hello there. Let&#8217;s talk about graphs in the context of data structures and computer science.</p>



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



<p class="wp-block-paragraph">Thank you so much for watching this video.</p>



<p class="wp-block-paragraph">I hope you learned a little bit of stuff and had a little bit of fun.</p>



<p class="wp-block-paragraph">See you in the future.</p>



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



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



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



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



<p class="wp-block-paragraph">So please do me a kindness and subscribe.</p>



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



<p class="wp-block-paragraph">It just wakes me up and I get filled with joy.</p>



<p class="wp-block-paragraph">That&#8217;s exactly what happens every single time.</p>



<p class="wp-block-paragraph">So you could do it as a nice favor to me or you could troll me if you want to just wake me up in the middle of the night.</p>



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



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



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



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



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



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



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



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



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



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



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



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



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