My god.... this is amazing! I actually sent my incompetent lecturer a link to this channel so he sees how this course should actually be taught, after I finished the course.
Great to see that you are back, the way you explain the things is very simple, even a layman can understand the things easily if he will follow your videos. I am thankful to you because of you I have developed strong interest towards data structures. Your tutorial is so far the best which I have seen.
I don't understand why THE teacher like you say "thank you" at the end of the video....I think the person watching the video should thank you instead of You thanking the viewer....These videos are really great.. THANK YOU SIR
I've been going through your videos. You're really good at clearly explaining the concepts are your examples are on point. Thank you. I have subscribed.
As others said the algorithms are well explained and especially with giving insights with regards to time and space complexity in really storing a graph into computer’s memory, etc are very helpful in understanding the details. I have a doubt at around 13:00 minutes of the video where you mentioned maximum edges are n(n-1) for a directed graph and n(n-1)/2 for an undirected graph where n being number of vertices. In the previous video I understood it as the other way. Can you please check and correct?
I understand the difference between DFS and BFS. However, I get confused when I have to determine which approach should be used. Request you to explain with some examples.
Great explanation! Thanks for the awesome work. However, I have a small doubt. You mentioned space complexity as O(|V| + |E|). But, |E| = |V|^2. Wouldn't this make it O(n^2) space complexity, which is quite costly?
Could you please make a few video tutorials on Bit-wise operators and their applications. Its hard to find bit-level programs explained. It would be great to learn about those applications from you :)
Quick question (it's not important but still it's a question). You changed the start vertex and end vertex from char* to int but isn't an int more space-costly than a chr variable?
int is indeed more space-costly than a char type, but he changed from char* (pointer to a character) to the int type. Pointers' size is typically 32 bits (4 bytes) which are also the typical size of the int data type. So there wasn't any space performance boost in that example. I believe he just showed an alternative way to store an edge list.
Sir, Isn't string data type available only in java and not c++?? Cause in our c++ classes we were taught that strings were implemented in CPP with the help of char arrays or char pointers...
What if the graph consists of labels on the edges instead of weights? Then is this a better solution. Those labels are the relation and might repeat for other node i.e a label might repeat. These labels are necessary and as well as the graph is having nodes in terms of millions or even billions. Then which data structure you suggest and its approach. Any help!!
I understand that we store the vertices in dynamic array and neighbors in linked list but I dont know How to iterate over the edges and how do u store them? help please
What's the guarantee that the list is sorted? Most graphs are huge and dynamic. Therefore, inserting nodes while keeping the list sorted would simply add up to the cost.
He told that while teaching Adjacency List which is far more complex than Vertex List. If you are alright in transforming a simple list-like structure of vertex list by using relatively complicated binary search trees then I don't know why you cannot use the Adjacency List instead (Ignoring the use case). Re-visit the lessons and understand the pros and cons of each approach in storing graphs in memory. You may have a better insight then.
Implement a program in C/C++ with the following specifications: The program will prompt the user to give an integer n. The program will create a graph of n vertices and add edges between any two vertices of the graph in a random way (using a random generation function available in C). Then the program will show the random graph generated to the user in a user friendly way (graphically or show the adjacency matrix of the graph) Next, the program will compute all cycles of the graph and show to the user the nodes of each cycle.
Your lectures are still highly effective and subsquently better than other existing tuts . Watching this in 2020 feels like watching a retro tuts.
Watching it in 2021 still very effective and helpfull, way more then my teachers and school lectures.
but he is no more
@@harshtripathi1291 No, Animesh the narrator here is still alive and well, it was Harsha who passed away, may his soul rest in peace.
@@OFaruk58 Watching it in 2022, how about that?
@@ChickenMaster7 that means it helped a lot to our seniors
Thanks for your posts, Its thousands time better watching your videos than reading data structure algorithm books
I second that.
Best code teaching channel! Well done, everyone! Please make more and more!!! Thanks
best videos on DS
Here again to say thank you
the logic of ur explanation is very natural ! what a talent !
Finally! Its so good to see you back. I hope you're doing well and you have my wishes. :')
Looking forward to the next lesson !
Such an evergreen tutorial for data structures.
2024 and I am glad I came across your channel. Thank you so much.
My god.... this is amazing! I actually sent my incompetent lecturer a link to this channel so he sees how this course should actually be taught, after I finished the course.
Glad to see you back !!!
Thanks for these well prepared lessons. Made all these concepts easier to understand.
Welcome back ,
A series on competitive programming and various algorithm design paradigms would be appreciable.
Thanks
You are an amazing teacher, these videos are the best I’ve watched on graph representation and time/space complexities!
Sir, Please look forward to working more on this best curated playlist! That would be so nice of you! A star is born! 😍
He passed away from us many years ago
@@krishnodas6678 Yeah, got aware about it recently.
you guys really bring the best stuff, been very useful to me. Could you make a series on Algorithms?
Plz upload videos on graph traversal
Amazing series you created
Great to see that you are back, the way you explain the things is very simple, even a layman can understand the things easily if he will follow your videos. I am thankful to you because of you I have developed strong interest towards data structures.
Your tutorial is so far the best which I have seen.
I don't understand why THE teacher like you say "thank you" at the end of the video....I think the person watching the video should thank you instead of You thanking the viewer....These videos are really great.. THANK YOU SIR
Hi Priyanshu pls checkout my explanation also th-cam.com/video/nA4gvjco4KI/w-d-xo.html
Thank you so much for this video. Really makes the whole concept easier !
The best explanation ever looked on graphs!! (y)
Keep on doing great work...
He expired bro
I've been going through your videos. You're really good at clearly explaining the concepts are your examples are on point. Thank you. I have subscribed.
Welcome Back !!
Waiting for the next video's from last month..
great work !!!
You legend!!!
You're back!!!
Thanks for posting. u have a special gift of making things simple.
sir please upload the video of Dijkstra's algorithm implementation
thanks for all your lectures
Explained really well!
sir ur videos are highly informative......can u plz post videos on heaps and hashing.
best explaination......outstanding at teaching......well done sir!
9:23 If |V|
Can't wait for part 02 !
As others said the algorithms are well explained and especially with giving insights with regards to time and space complexity in really storing a graph into computer’s memory, etc are very helpful in understanding the details.
I have a doubt at around 13:00 minutes of the video where you mentioned maximum edges are n(n-1) for a directed graph and n(n-1)/2 for an undirected graph where n being number of vertices. In the previous video I understood it as the other way. Can you please check and correct?
Can't wait for more tutorials on graphs...great work there thanks a lot ;-)
Great video. Looking forward to more such videos.
I'm glad that I saw those videos. Great!
please a series on algorithms , thanks a lot
you made it so simple. thanks for sharing, waiting for next..
amazing playlist
thanks a lot for all your lectures
glad to see u again
Helpful as always, thank you!
Great Lesson on applied math and CS. Thanks
hey, can you guide me where should I learn next concepts as this person stopped creating lessons!
So this is the staffs for half edge data structures,am doing a software 3d using python and I have reached for the subdivision
Please make a video on implementation of bfs and dfs
Welcome back!
Thank you!
I understand the difference between DFS and BFS. However, I get confused when I have to determine which approach should be used. Request you to explain with some examples.
U are a btech cs student or MCA ?
YOU ARE THE BEST!!!!!!!!!!!!
Great explanation! Thanks for the awesome work.
However, I have a small doubt. You mentioned space complexity as O(|V| + |E|). But, |E| = |V|^2. Wouldn't this make it O(n^2) space complexity, which is quite costly?
yes, that in the worst case is true ! but it is not sure that |E| will actually be equal to |V|^2 in each and every case . :)
@9:49 how this is a better design than previous one??
Ur explanation was so clear.why can't you start ur videos on Java also.
How do you check if two vertices are connected (not necessarily adjacent) on a linear time over edge space ?
what do u mean by weight?is is representing the importance or order of the edges?
Could you please make a few video tutorials on Bit-wise operators and their applications. Its hard to find bit-level programs explained. It would be great to learn about those applications from you :)
Brutal tutorial
Do more videos on DATA STRUCTURES
Quick question (it's not important but still it's a question). You changed the start vertex and end vertex from char* to int but isn't an int more space-costly than a chr variable?
int is indeed more space-costly than a char type, but he changed from char* (pointer to a character) to the int
type. Pointers' size is typically 32 bits (4 bytes) which are also the typical size of the int data type. So there wasn't any space performance boost in that example. I believe he just showed an alternative way to store an edge list.
thank you very much for these great videos :)
@mycodeschool hoping you to have more tutorials. like object oriented programming in C/C++ or tutorials in C++03/11 etc..
please dijkstra and topological sorting
Sir,
Isn't string data type available only in java and not c++??
Cause in our c++ classes we were taught that strings were implemented in CPP with the help of char arrays or char pointers...
Abhijith R Nair string is their in c++ but not in c
What if the graph consists of labels on the edges instead of weights? Then is this a better solution. Those labels are the relation and might repeat for other node i.e a label might repeat. These labels are necessary and as well as the graph is having nodes in terms of millions or even billions. Then which data structure you suggest and its approach. Any help!!
Hello dear teacher could you please add video on adding and delete new node/ edge in graph
great job....
Thanks for good explain 🙂
I understand that we store the vertices in dynamic array and neighbors in linked list but I dont know How to iterate over the edges and how do u store them? help please
Watching this in 2019🤪🤪🤪
Thanks a lot the lectures!!
1:46 he meant to have a pointer as the strings too i think
Thank you so much for these videos!
Thank you!!!
sir can you please upload a video of circulary linked list
who else liked this video before watching
You are awesome.
Make a video on traversal of graph..
Keep it up!!!
This is awesome
Kindy upload DFS and BFS videos too Sir!
Sir ,your site is not working. Its showing bad gateway.
Yeah.. Was working till December 17.. Now it's not working
Can't we jut do a binary search in the vertex list so we would just get O(log|e|)?
What's the guarantee that the list is sorted? Most graphs are huge and dynamic. Therefore, inserting nodes while keeping the list sorted would simply add up to the cost.
@@ir2001 We can just use a binary search tree.... Doh. He actually says the same thing in the next lectures :)
He told that while teaching Adjacency List which is far more complex than Vertex List.
If you are alright in transforming a simple list-like structure of vertex list by using relatively complicated binary search trees then I don't know why you cannot use the Adjacency List instead (Ignoring the use case).
Re-visit the lessons and understand the pros and cons of each approach in storing graphs in memory. You may have a better insight then.
@@ir2001 Yes that was a typo. I mean the Adjacency list not the Vertex List. My mistake.
Thankyou brother
What's the C code to implement this?
we dey
can someone suggest some other channel so much similar to this one ?
You will not be able to find a channel like this one bro. It is gold. Btw you can search for Abdul Bari's lectures
thank u bro
mycodeschool PLEASE DO A TUTORIAL ABOUT CURSOR-BASED IMPLEMENTATION (array manipulated like a linked list) :(
thank you.....
Take a shot every time he says "graph".
really nice
thanks
thank you soo much :)
Wow just wow
Implement a program in C/C++ with the following specifications:
The program will prompt the user to give an integer n.
The program will create a graph of n vertices and add edges between any two vertices of
the graph in a random way (using a random generation function available in C).
Then the program will show the random graph generated to the user in a user friendly way
(graphically or show the adjacency matrix of the graph)
Next, the program will compute all cycles of the graph and show to the user the nodes of
each cycle.
Do it yourself dummy
are you angle ??
you are a bosssssss thank you :)
ty boss
8 is missing in the graph
watching in april 2020