G-2. Graph Representation in C++ | Two Ways to Represent

  Рет қаралды 273,848

take U forward

take U forward

2 жыл бұрын

Notes Link: takeuforward.org/graph/graph-...
DP Series: • Striver's Dynamic Prog...
SDE Sheet: takeuforward.org/interviews/s...
Check out our Website for curated resources:
Our Second Channel: / @striver_79
In case you are thinking to buy courses, please check below:
Code "takeuforward" for 15% off at GFG: practice.geeksforgeeks.org/co...
Code "takeuforward" for 20% off on sys-design: get.interviewready.io?_aff=takeuforward
Crypto, I use the Wazirx app: wazirx.com/invite/xexnpc4u
Take 750 rs free Amazon Stock from me: indmoney.onelink.me/RmHC/idje...
Earn 100 rs by making a Grow Account for investing: app.groww.in/v3cO/8hu879t0
Linkedin/Instagram/Telegram: linktr.ee/takeUforward
---------------------------------------------------------------------------------------------------------------------------

Пікірлер: 291
@takeUforward
@takeUforward 2 жыл бұрын
Lets continue the habit of commenting “understood” if you got the entire video. Do follow me at Instagram: striver_79
@raghvendrakhatri5848
@raghvendrakhatri5848 2 жыл бұрын
Understood each and every word♥️. Kudos to your hard work and dedication, you are the motivation behind a lot of people. Your hardwork inspires a lot of people to work hard. Thankyou for providing such a beautiful graph series keep posting such content ♥️, we all need this.
@nisha_k22
@nisha_k22 2 жыл бұрын
@take U forward the complexity at 6:44 if it is 0 indexed should be n*n or n*m ? and the complexity at 7:17 should be O(m) I guess . Please let me know
@terrorwizard4055
@terrorwizard4055 Жыл бұрын
@@nisha_k22 You are right
@BhavyaJain-qz8jg
@BhavyaJain-qz8jg 7 ай бұрын
understood
@raregem7995
@raregem7995 26 күн бұрын
In the adj matrix code at 06:37 there will be adj[n+1][n+1], not adj[n+1][m+1]. We all understood this from your explanation. Thank you for such great playlists.💛
@user-ki5hf5sq4t
@user-ki5hf5sq4t 2 ай бұрын
2D Vector (vector) Dynamic: Both dimensions (rows and columns) can be resized dynamically. Usage: Suitable when the number of vertices is not known at compile time or can change. Syntax: vector adjList(vertices); Array of Vectors (vector adj[]) Fixed Outer Dimension: The number of rows (vertices) is fixed at compile time. Dynamic Inner Dimension: The number of columns (edges per vertex) can change dynamically. Usage: Suitable when the number of vertices is known and fixed at compile time. Syntax: vector adj[n+1];
@vikaskumaryadav3529
@vikaskumaryadav3529 Жыл бұрын
I just wanted to say that u are pure gem for us and keep going the way you are going. Lots of thanks 🙏🙏
@gokulbansal1038
@gokulbansal1038 6 ай бұрын
For storing in adjacency matrix, it will be int adj[n][n] if nodes are numbered from 0 to n-1 and adj[n+1][n+1] if nodes are numbered from 1 to n
@garvgoel1743
@garvgoel1743 5 ай бұрын
yes... even I was thinking the same during the lecture
@johnxina7496
@johnxina7496 5 ай бұрын
why n+1
@satyampratap3808
@satyampratap3808 5 ай бұрын
@@johnxina7496 Because of 1-based indexing, if you'll take it n then n-th node will not get added.
@user-oy7ky9zk9l
@user-oy7ky9zk9l 3 ай бұрын
he also did a mistake of taking n+1 * m+1 it should be n+1 * n+1
@vibhanshugarg3603
@vibhanshugarg3603 2 жыл бұрын
the best explanation of graphs till now... thanks striver
@mayank_rampuriya
@mayank_rampuriya Жыл бұрын
It would be better if we use *map m* rather than *vector v[n+1]*
@Sameer-wx2pd
@Sameer-wx2pd 4 ай бұрын
Why bro
@divyam-hx3ie
@divyam-hx3ie 2 ай бұрын
@@Sameer-wx2pd because we have a vector corresponding to single integer, example 1 is connected to 2 and 3 so, key is 1 and have value in the form of vector containing 2 and 3
@MrAmitparida
@MrAmitparida Жыл бұрын
Some compilers like Visual C++ don't support variable length arrays. So you will get compilation error for using non-constant n and m as array indexes. In that case you can use vector as follows: //Adjacency Matrix representation =========================== #include #include using namespace std; int main() { int nodes, edges, u, v; cin >> nodes >> edges; // declare the Adjacency matrix vector adj; adj.resize(nodes + 1); // take edges as input for (int i = 0; i < edges; i++) { cin >> u >> v; adj[u][v] = 1; adj[v][u] = 1; } return 0; } //Adjacency List representation ========================= #include #include using namespace std; int main() { int nodes, edges, u, v; cin >> nodes >> edges; // declare the Adjacency list vector adj; adj.resize(nodes + 1); // take edges as input for (int i = 0; i < edges; ++i) { cin >> u >> v; adj[u].push_back(v); adj[v].push_back(u); } return 0; }
@srianshumahadas7178
@srianshumahadas7178 Жыл бұрын
At last, I was racking my head trying to understand how using vector we were able to represent a 2D matrix. Thanks, bro
@MrAmitparida
@MrAmitparida Жыл бұрын
@@srianshumahadas7178 Welcome! int matrix[M][N] can be represented as vector matrix(M, vector(N)) .
@cinime
@cinime 2 жыл бұрын
Understood! Great explanation as always, thank you very much!!
@molyoxide8358
@molyoxide8358 Жыл бұрын
from past 3-4 months I was running away from the graph but I got some hope after watching this video. 😍
@udityakumar9875
@udityakumar9875 Жыл бұрын
adjacency list is vectoradj. right? and not just 1d vector
@rohithparepalli9237
@rohithparepalli9237 6 ай бұрын
Yeah same doubt
@shivgoyal103
@shivgoyal103 4 ай бұрын
han bhai same doubt mera bhi .
@ritabhsharma6627
@ritabhsharma6627 4 ай бұрын
Its not a 1-D vector. Its aa array of vector. see it this way. How a 1-D vector is declared : vector adj(n+1); How an array of vectors is declared : vector adj[n+1]; Do you observe the difference between ( ) and [ ] ? Now you do :D
@harsha4048
@harsha4048 Ай бұрын
​@@ritabhsharma6627🙌
@VivekKumar-kf8yc
@VivekKumar-kf8yc Ай бұрын
@@ritabhsharma6627 Thank you so much. I could never understand how he was able to store a list in a vector. Thanks for clearing my doubt.
@fuzi_blossom
@fuzi_blossom 11 ай бұрын
//Thanku so much striver bhaiya for this amazing content ❤ //I have made a complete gist of this video in the code written below in C++ #include using namespace std; int main() { // Graph is a finite set of vertices and edges // total degree of undirected graph=2*Total edges // for directed graph degree is represented in terms of indegree and outdegree //degree of a vertex is defined as the no of edges attached with it int n, m; cout > n; cout > m; vector adj(n + 1, vector(m + 1, 0)); vector adj_list[n + 1]; for (int i = 1; i > v1 >> v2>>wt; adj[v1][v2] = wt; adj[v2][v1] = wt;//remove this line for directed graph adj_list[v1].push_back({v2,wt}); adj_list[v2].push_back({v1,wt});//remove this line for directed graph } //---------ADJACENCY MATRIX-------------------// // space complexity for undirected graph= O(V*V) // space complexity for directed graph : O(V*V) cout
@tastaslim
@tastaslim Жыл бұрын
The adjacency matrix is better if we are concerned about time complexity as it finds edge b/w nodes in O(1). Yes, in the case of something like a sparse graph, we should prefer an adjacency list otherwise we would waste too much space.
@GauravChaudharyNITW0501
@GauravChaudharyNITW0501 Жыл бұрын
Best graph explanation🙌🏻🙌🏻
@sripriyapotnuru5839
@sripriyapotnuru5839 Жыл бұрын
Thank you, Striver 🙂
@nbavideos4487
@nbavideos4487 Жыл бұрын
Understood! Great explanation
@rajkamalingle9144
@rajkamalingle9144 Жыл бұрын
@7:16 Time complexity to store the adjacency matrix would be O(m) and not O(n)
@shubhamsanodiya8368
@shubhamsanodiya8368 2 жыл бұрын
UnderStood Thanks for this amazing series
@p38_amankuldeep75
@p38_amankuldeep75 Жыл бұрын
great explanation ! loving this series!!💙💙💙
@ramanpareek5218
@ramanpareek5218 23 күн бұрын
Liked the video, notes taken, understood
@itsmeakash_
@itsmeakash_ Жыл бұрын
6:42 why is the matrix is [n+1][m+1] but previously u told [n+1][n+1]?
@ArnabJhaYT
@ArnabJhaYT Жыл бұрын
because in total, there are only n vertices. we dont care about the number of edges here as we can store any edge in the matrix format.
@mahaprasadm9770
@mahaprasadm9770 Жыл бұрын
I think it's a typing mistake.
@ArnabJhaYT
@ArnabJhaYT Жыл бұрын
@@dravitgupta7927 maybe I was unclear in what I meant. I meant that (n+1)(n+1) should be the size, because the number of edges(m) don't matter, but the number of vertices(n) matters. Try reading my old comment once again.
@dravitgupta7927
@dravitgupta7927 Жыл бұрын
@@ArnabJhaYT Got it👌.
@aasthadubey3321
@aasthadubey3321 Жыл бұрын
@@ArnabJhaYT yes number of edges won't matter here
@tasneemayham974
@tasneemayham974 7 ай бұрын
I finished the ENTIRE dp series. THE BESSTTT. Now I am here for graphss!! Thank youu sooo much Striver!!!
@harshitrautela6585
@harshitrautela6585 Ай бұрын
do you suggest completing graph or dp series before?
@tasneemayham974
@tasneemayham974 Ай бұрын
@@harshitrautela6585 Honestly, DP. Because I feel its problems are more interesting than graphs and I generally like recursion more. Also, when Striver teaches it you really feel ADDICTED. It's soooo much more immersive than graphs. But it's up to you. The disadvantage of going with DP is you have to complete the recursion series first as a prerequisite, and it's longer than the graph series.
@Josuke217
@Josuke217 26 күн бұрын
​@@tasneemayham974I learned recursion from love Babbar but I still suck at it , is Striver's recursion playlist good? Also should I make notes or just learn the topic and apply it? I am asking this because I am confused and don't know how to move forward
@tasneemayham974
@tasneemayham974 24 күн бұрын
@@Josuke217 I don't know Babbar. But I know that once I learned recursion from Striver, I didn't need to open any other KZbin video. It IS this good. And YESS definitely make notes. I learn and memorize better when I take notes. Learning goes both ways: note-taking and skill application. I know how you feel. Currently, I am stuck too. My Graph series Notes were destroyed because of water contact. I am soooo downnn!! 😥😥😥
@Josuke217
@Josuke217 24 күн бұрын
@@tasneemayham974 thanks , is the recursion series complete? Because someone told me striver has skipped some topics.
@rishabhagarwal8049
@rishabhagarwal8049 Жыл бұрын
Understood Sir, Thank you very much
@Sarkar.editsz
@Sarkar.editsz Жыл бұрын
Thanks a lot dear brother ❤❤ , understood fully
@sukhpreetsingh5200
@sukhpreetsingh5200 Жыл бұрын
just awesome pure gold
@user-bt6mh9ez3u
@user-bt6mh9ez3u Ай бұрын
Awesome Video..understood everything
@mriduljain6809
@mriduljain6809 Жыл бұрын
Understood Bhaiya We can also use this for representing adjacency list: unordered_map list
@ronakslibrary8635
@ronakslibrary8635 Жыл бұрын
US , Excited for learning graph
@dhivyashri6554
@dhivyashri6554 2 жыл бұрын
understood, ty, u r the best
@subhamoybera6456
@subhamoybera6456 Жыл бұрын
Great explanation
@PRALAY.THAKUR
@PRALAY.THAKUR Жыл бұрын
very nice explanation
@rishabhgupta9846
@rishabhgupta9846 Жыл бұрын
great explanation
@vikasbagri1225
@vikasbagri1225 2 жыл бұрын
understood very well...
@ashishparmar762
@ashishparmar762 7 ай бұрын
00:03 Learn how to represent a graph in C++ or Java 02:05 Learn how to store edges in a graph using an adjacency matrix or a list. 04:07 Creating an adjacency matrix to represent edges between nodes 06:09 Storing a graph using adjacency list takes less space than n square method 08:15 Adjacency list stores neighbors of a node 10:12 Using adjacency list for graph storage 12:22 Learned how to store graphs using adjacency list and matrix 14:13 Store weights in pairs instead of single integers Crafted by Merlin AI.
@samuelfrank1369
@samuelfrank1369 9 ай бұрын
Understood. Thanks a lot.
@DevashishJose
@DevashishJose Жыл бұрын
understood. Thank you
@bhavkushwaha
@bhavkushwaha Ай бұрын
Thankyou Striver, Understood!
@KapilMaan-vw9sd
@KapilMaan-vw9sd 9 күн бұрын
amazing video sir ji
@VarunKaushal-zx9zq
@VarunKaushal-zx9zq 17 күн бұрын
Thank you so much
@morganyu3391
@morganyu3391 2 жыл бұрын
Understood Bhaiya 👍
@shubhamsukum
@shubhamsukum Жыл бұрын
vector adj[n+1]; means => vector adj(n+1); Correct me if I am wrong?
@viz_dugz
@viz_dugz Жыл бұрын
something i got stuck on myself, didn't notice the square brackets
@tanishgupta7879
@tanishgupta7879 Жыл бұрын
it's a vector of array. Try to read it from right to left. At each index there is an empty vector.
@shrutikahilale
@shrutikahilale Жыл бұрын
when we declare an array of integers of size n, we say int arr[n] so we say the datatype is int. Here, we want to create an array of vectors (of type int) hence, vector arr[n+1] of size n+1.
@DevanshuAugusty
@DevanshuAugusty Жыл бұрын
@@tanishgupta7879 you mean array of vectors
@fmkhandwala39
@fmkhandwala39 Жыл бұрын
understoood!
@shyren_more
@shyren_more 2 жыл бұрын
understood, thanks
@ashitasrivastava681
@ashitasrivastava681 Жыл бұрын
UNDERSTOOD!
@akhirulislam4079
@akhirulislam4079 Жыл бұрын
I feel the matrix should be like adj[n+1][n+1] not adj[n+1][m+1]
@vishvrajbaan6634
@vishvrajbaan6634 Жыл бұрын
yes this right
@ProSol-im6zn
@ProSol-im6zn Жыл бұрын
Can u say How do u know those matrix
@ProSol-im6zn
@ProSol-im6zn Жыл бұрын
I don't have a proper idea about adj[n+1]
@Arkagame19
@Arkagame19 Жыл бұрын
Ya I wasss about to comment this
@SsjRose26
@SsjRose26 Жыл бұрын
​@@ProSol-im6znbro, if there no of edges depends upon the no of nodes, so we need adj[n+1][n+1], total of n*2 edges possible, what he typed was a mistake in the video
@ANURAGSINGH-nl2ll
@ANURAGSINGH-nl2ll 10 ай бұрын
understood thank you 🙂
@abhaysinghchauhan4521
@abhaysinghchauhan4521 2 жыл бұрын
Understood!
@sadiashafaque3517
@sadiashafaque3517 Жыл бұрын
Awesome!
@_hulk748
@_hulk748 Жыл бұрын
understood sir🙏❤🙇‍♂
@UECAshutoshKumar
@UECAshutoshKumar 11 ай бұрын
Thank you sir
@niyamaliyakkal
@niyamaliyakkal 15 күн бұрын
understood ❤‍🔥
@niteshsaxena1066
@niteshsaxena1066 2 ай бұрын
awesome video
@DevanshuAugusty
@DevanshuAugusty Жыл бұрын
15:20 so for this it would be: vector adj[n+1] .... right?
@vivek03501
@vivek03501 Жыл бұрын
no it should be vector adj(n+1);
@vani.sharmaa
@vani.sharmaa Жыл бұрын
vector adj[n+1] basically means a vector of arrays right? so can we also declare it as vector of vectors?
@mohakhiphop
@mohakhiphop Жыл бұрын
Yes, which is adjacency matrix but it takes more space
@mohakhiphop
@mohakhiphop Жыл бұрын
@@rahulshah2685 no its right , vector[] is array of vector i.e. 2 d array
@DevanshuAugusty
@DevanshuAugusty Жыл бұрын
@@mohakhiphop well vector of vector will take more space if we already declare the size. But the space will be same as vector adj[] if we store in a way so that it doesn't take extra space.
@mohakhiphop
@mohakhiphop Жыл бұрын
@@DevanshuAugusty yep true💯
@careerwithmann481
@careerwithmann481 Жыл бұрын
understood bhaiya.
@sarangkumarsingh7901
@sarangkumarsingh7901 6 күн бұрын
Awesome.....
@user-tk2vg5jt3l
@user-tk2vg5jt3l 3 ай бұрын
Thank you Bhaiya
@mathematics7746
@mathematics7746 2 жыл бұрын
incredible
@deepakbhallavi1612
@deepakbhallavi1612 Жыл бұрын
Understood 💥
@divyanshbhatt8273
@divyanshbhatt8273 6 ай бұрын
what are we going to do if, in a graph, I have just two nodes and the value is 1 and 10^5 then we won't have the index 10^5 with us to fill!
@suhaanbhandary4009
@suhaanbhandary4009 Жыл бұрын
understood!!
@atulkohar6959
@atulkohar6959 5 күн бұрын
I don't get this part where he says he says he using list to store the graph values. But he only define the structure like vector and later vector but how will he store multiple values on one index as he defined it. In both the approaches he is using a 2d array
@khechraay
@khechraay 3 күн бұрын
bro he is using array of vectors `vector adj[n+1]`
@slemanabbas7720
@slemanabbas7720 16 күн бұрын
I am very lucky because I found you❤🎉🎉
@AbhishekThakur-gz6ul
@AbhishekThakur-gz6ul 2 жыл бұрын
Understood ☺️😄
@siddheshborse3536
@siddheshborse3536 Жыл бұрын
Understood... 😊
@user-sp9rg7if3i
@user-sp9rg7if3i Ай бұрын
@takeUforward how to solve if node is negatives?? like how you represents {(-1 --> 3),
@KartikeyTT
@KartikeyTT Ай бұрын
tysm sir
@shresthbhakta7337
@shresthbhakta7337 Жыл бұрын
Understoood!!!!
@nasimnajand9697
@nasimnajand9697 8 ай бұрын
Thanks in advance
@suryakiran2970
@suryakiran2970 Жыл бұрын
understood❤
@vaibhav8257
@vaibhav8257 7 ай бұрын
understood!
@ashwanisingh3291
@ashwanisingh3291 2 жыл бұрын
Understood 😇
@ripanroy8399
@ripanroy8399 2 жыл бұрын
Understood!!
@nathonluke4058
@nathonluke4058 2 жыл бұрын
Hi Loved it... Great Explanation from scratch. And also as i read your community post. I think the audio quality has changed. In L1 the audio quality was kind of good, but in this there is a lot of disturbance. Also i liked the red colored Writing (specially when it fades after explaning) Loved the details.♥️♥️♥️
@shantohossain1372
@shantohossain1372 11 ай бұрын
his explanition is the worst ever, kunals, shardha didis explination is far better than his
@worthlessguy1621
@worthlessguy1621 3 ай бұрын
understood striver :)
@prakhargarg4166
@prakhargarg4166 5 ай бұрын
Best videos
@sujalgupta6100
@sujalgupta6100 2 жыл бұрын
Okay, I was watching your previous playlist yesterday , and in that you said space complexity of Adjacency list is O(V+2E) which i didn't understood. Now, I came across this video in which it is O(2E) and I understood it. I know they are almost same but I want to know why did we add V in the space complexity in the old video .
@takeUforward
@takeUforward 2 жыл бұрын
Yes, I went through all the comments of those videos, and making sure I cover things which people were having doubts 😅 The addition of V was for the list creation. The list itself takes N space.
@lakeshkumar1252
@lakeshkumar1252 Жыл бұрын
UNDERSTOOD
@akshatshrivastava7273
@akshatshrivastava7273 Жыл бұрын
understood.
@karthikavijayannv5319
@karthikavijayannv5319 Жыл бұрын
understood
@arihantjain3274
@arihantjain3274 Жыл бұрын
Understood
@oqant0424
@oqant0424 Жыл бұрын
2/56 done (3.12.22)
@varunkumar-vs5wc
@varunkumar-vs5wc 9 ай бұрын
thank u
@sairammurthy6121
@sairammurthy6121 2 ай бұрын
understood :)
@TON-108
@TON-108 4 ай бұрын
i started graph but still got confused in this 👇🏼 vector v[n] and vector v(n) are they same ??? 😭
@phoenix_1_3
@phoenix_1_3 Жыл бұрын
Understood
@valendradangi1822
@valendradangi1822 2 ай бұрын
Bhiya at 7:10 adjacency matrix should be of (n+1)*(n+1) size and not (n+1)*(m+1).
@DevashishJose
@DevashishJose 6 ай бұрын
Understood.
@akkisharma7552
@akkisharma7552 Жыл бұрын
Happy teachers day
@animestan265
@animestan265 Жыл бұрын
Got it
@sumitkanth5349
@sumitkanth5349 Жыл бұрын
After filling the adjacent list with edges and weight the size of adjacent list is showing 0, why ? ( Code is given below and size is printed in line no. 8 ) thanks :) // CODE FOR WEIGHTED GRAPH 1. int n,m; 2. cout > n; 4. cout > m; 6. vector adj[n+1]; 7. for(int i=0; i u >> v; cout > w; adj[u].push_back({v, w}); adj[v].push_back({u,w}); } 8. cout
@avanishmaurya2034
@avanishmaurya2034 6 ай бұрын
Nice
@mathematics7746
@mathematics7746 2 жыл бұрын
awsmmmmmmmm
@vakhariyajay2224
@vakhariyajay2224 Жыл бұрын
Thank you very much. You are a genius.
@111rhishishranjan2
@111rhishishranjan2 Жыл бұрын
can anyone tell me what does one way indexing mean
@ssbcodes2654
@ssbcodes2654 Жыл бұрын
Hey, why didn't we use 2D-vector in place of this? Creating array of vectors looks confusing.
@takeUforward
@takeUforward Жыл бұрын
Array of vectors takes lesser space!
@ssbcodes2654
@ssbcodes2654 Жыл бұрын
@@takeUforward is it because of double the size property? What if we define size of 2d-vector beforehand? Something like below: vector adjList(n+1, vector(m+1)) Only asking this because array of vectors was not so intuitive to me atleast :')
@al_ted
@al_ted Жыл бұрын
understood ...
@udaypratapsingh8923
@udaypratapsingh8923 Жыл бұрын
here we go
@rahulr9301
@rahulr9301 7 ай бұрын
can anyone please explain me what is zero bases and 1 based node??
@akashsahu2571
@akashsahu2571 Жыл бұрын
yes
G-3. Graph Representation in Java | Two Ways to Represent
13:13
take U forward
Рет қаралды 128 М.
Sigma Kid Hair #funny #sigma #comedy
00:33
CRAZY GREAPA
Рет қаралды 40 МЛН
Как бесплатно замутить iphone 15 pro max
00:59
ЖЕЛЕЗНЫЙ КОРОЛЬ
Рет қаралды 8 МЛН
G-1. Introduction to Graph | Types | Different Conventions Used
13:43
take U forward
Рет қаралды 953 М.
The Last Algorithms Course You'll Need by ThePrimeagen | Preview
16:44
Frontend Masters
Рет қаралды 313 М.
G-4. What are Connected Components ?
7:07
take U forward
Рет қаралды 211 М.
World Champion vs World Champion!
34:24
GothamChess
Рет қаралды 300 М.
BREAKING Chess Drama As Niemann Rips Into Magnus Carlsen
8:25
Epic Chess
Рет қаралды 46 М.
Not In 138 Years Have We Seen Chess Domination Like This
11:21
Epic Chess
Рет қаралды 41 М.
Sigma Kid Hair #funny #sigma #comedy
00:33
CRAZY GREAPA
Рет қаралды 40 МЛН