Data Structures: Arrays: - Read: O(1) - Insertion: O(n) - Deletion: O(n) - Fast at reading but slow at insertion and deletion. Linked Lists: - Read: O(n) - Insertion: O(1) - Deletion: O(1) - Slow at reading but efficient for insertion and deletion. HashMaps: - Read: O(1) - Insertion: O(1) - Deletion: O(1) - Similar to arrays but with named indexes (keys); unordered but provide fast lookup. Stacks: - Push: O(1) - Pop: O(1) - Peak: O(1) - Follow the LIFO (Last In, First Out) principle; useful for fast retrieval of the topmost element but can be cumbersome for inserting or deleting elements in the middle or end. Queues: - Enqueue: O(1) - Dequeue: O(1) - Front: O(1) - Follow the FIFO (First In, First Out) principle; the first element in line is the first to come out. Think of them as playlists for organizing items in order of arrival. Trees: - Read/Search: O(log n) - Insertion: O(log n) - Deletion: O(log n) - Nodes connected by edges; root, parent-child connections. Binary Trees: - Efficient searching of ordered values. - Follow a binary search property where left child nodes are less than the parent and right child nodes are greater. - Useful for tasks like number guessing games or dictionary implementations. Graphs: - Traversal/Search: O(V + E) (V: number of vertices, E: number of edges) - Insertion: O(1) - Deletion: O(1) - Versatile models for connections between nodes and edges; can be directed or undirected with no neighboring limit. Can include cycles and weights on paths. Used for tasks like route optimization.
Thanks so much! It’s honestly so much effort haha people don’t realize. I didn’t even realize until I started. This video took around 12 hours to bring to completion, from scripting to recording audio to making video graphics and then editing everything together. I appreciate comments like these, makes it all worth it! :)
you got a good clear voice ,you use simple English words most of the non native English speakers gets hard to cope up with native English speaker's tutorials and there is no point of seeing the content in native language due to bad quality ,you are maintaining both ,and the best thing is you use *simple examples* ,which are not region specific , so we all get it easily, make more dsa videos and put them in sequence wise ,easy to find, perfect animation ,no extra content on screen
Your content is underrated man. Click the video thinking this was some 100k views video about DS. The effort you put in this one is fantastic. The way you explain the concepts visually helps me understand a lot faster. You gain a new sub today. Hope to see more and more of you.
Simple explanation and the pace is slow enough to process the information comfortably. I have watched countless of vids on data structures and this is by far my favourite. Great work!!
Bro I'm a Game Development Student and i had to study Algorithms and Data Structures but i didnt understand anything from just bold explanations and terms I am not familiar with. Your video just helped me a lot. Giving a real life example really makes the understanding better. Keep doing what you are doing!
Thank you for your videos! I'm about to be a freshman CS major and starting to learn Data Structures and Algorithms for software engineering interview prep. I would love to see videos on standard algorithms and go in-depth about major data structures and algorithms!
Yeah thank you bro for this video. I just starting my course in Algorithm Analysis and Design, so this video was a helpful refresher. Those are the exact same data structures in the course (Bachelor's Degree Level)
Good work! Just what I needed a very 'simple'...and, also, perfectly understandable...explanation of an, otherwise, very 'complex' subject. Well done! Thanks! ;-)
8:40 the most top parent node is also called the ROOT and the last children on the very bottom which dont have any other nodes connected to them are called LEAFES.
Hey man, I'd love to see more videos about data structures. Perhaps with some code examples and a little more in-depth descriptions of memory allocation for each, if at all possible. Maybe dedicating entire videos to a single data structure would do the trick? And then later have a playlist for data structures? I really loved the way CS50's intro to data structures was taught. This is an incredibly important topic for me, being mostly self-taught and trying to solve programming problems everyday. I wish I studied CS in undergrad... but videos like these make it a little more bearable. Thanks for your hard work!
I have been learning DSA python codes for a while and did not really get why we use each of the DS you mentioned. Now it makes so much sense. Thank you so much. This is one of the channels I had to both follow on work and personal account.
Hi. A very good video. At 2:57 you mentioned LinkedLists had O(1) for a deletion operation. How would that be the case if you have to start from the first node and traverse linearly until you find the node you want to delete? I think a deletion is O(n), same as a read.
Thank you! Your videos are top-notch. I'd love to see you make a complete paid course on teaching data structures and algorithms in Python. This would be really valuable for the community since there aren't many good courses on DSA (sadly).
Wow, what a concise and informative breakdown of the top 7 data structures! 📚💻 Codebagel really knows how to simplify complex concepts for us. From arrays to graphs, each explanation was clear and easy to understand. Thanks for providing such valuable insights into data structures essential for interviews, classes, and projects. Can't wait to implement this knowledge! 👏🚀 #datastructures #coding #softwareengineer
Nice video! I'm just confused about the binary search tree example. If you wanted to search a dictionary, why use binary search O(log n) instead of just dictionary/hashmap lookup O(1)? Am I missing something? Second question: You can do binary search without a tree, so what is up with the tree? What do you gain from using a tree data structure?
By reading - you meen random access. If you have index/iterator already reading from linked list isn't slower, it just locating the partiular index is slower. So, visiting every element is the same complexity for arrays and linked list (if we omit non contiguous memory access pattern and cache misses)
In the linked lists example, you show a diagram where the data is stored with a finite number of spots in between items. What would happen if I tried to insert in between two items right next to each other? Linked List: 5 _ _ 4 3 _ 8 Insert 6 in the 2nd spot (starting from 0) Would it be slower? And would it shift everything after the insert space by one until there is an empty space, or would it shift everything back more to create extra space? Also, nice video.
Are you trying to insert the 6 between the 4 and 3? Ultimately it doesn’t matter where you store the new 6 in memory. The whole advantage of linked lists is items don’t need to be next to each other. You can store the 6 somewhere else, and have the element before it point to it. So if the current linked list (the one you gave) is like this: 5 -> 4 -> 3 -> 8 You can store the 6 somewhere else in memory, and have the 4 now point to it: 5 -> 4 -> 6 -> 3 -> 8 Does that clear up your question? If not, please feel free to explain and I’ll definitely try and help!
Thank you for explanation and channel as it is helping me understand data structures as I am doing Python. I would love to see some coding examples using data structures. Otherwise, keep up the good work
couple of months ago, I stumbled upon some very bad blog entries about data structures; though list of data structures was almost the same, the way you present is at least intelligible; I don't know why what you do isn't a widespread norm; this video deserves more attention for at least being correct (sounds kind of sad, but yes, IT education is still in a state where bad content is too easy to find);
@@LinhNguyen-nh8oq ok i figured it out. For linked list, access to first node is O(1) so deleting the first node is always O(1) [if you keep a reference to the tail, same applies for the last node]. For every other nodes in between, the deletion is O(n) because - as i said - you need to find it, in order to delete it. Other techniques might apply where you keep a reference to those nodes in between with some smart way, and then yes you can delete it in O(1) because you keep that reference. But you need to find it at least once, and this try will be O(n). Hope you 're ok with that now.
@@spiritual5750 no worries! I’m glad people are enjoying my content! Make sure you hit the 🔔 button to turn on notifications so you see my videos when I upload next. Thanks so much!
Hello bro just a small doubt when we look at a question how do we understand which data structure we need to apply or does it depend on our experience of solving more & more questions which helps us to understand which method of data structure we need to apply!!!
read, when talking about an array means accessing an element at a specific index. for example if we have array[1, 2, 3, 4, 5] and we go to index 3, we will get array[3] which corresponds to value 4. You will better understand if you think about an array as a special type of hash map where keys are indexes and values are elements at those corresponding indexes. hash_map = { 0: 1, 1: 2, 2: 3, 3: 4, 4: 5 } As we already know accessing an element by key in a hash map is constant time operation, therefore when we go to index 3, we immediately grab 4. we are not iterating or anything like that. searching by value in an array takes O(n) time because you need to iterate through all the elements to find the value you are looking for, but reading by "index" takes O(1) constat time. I hope that helps.
8:43 leaf nodes are any node that do not have children. Children nodes can have children, unless they are a leaf node ( which by definition have no children ). A child node can be a parent node, just like in real life, but unlike in real life, there is a "terminal" node ( the leaf node ).
This is the first video I’ve added background music to - please let me know if you enjoyed it, or if you have any other feedback!
I definitely like the music, I've found that silence in the background can lead to me getting bored more quickly for some reason
@@frosty_teacup Awesome I’m glad to hear that! (not the bored thing, the music helping thing 😂)
Music is perfect
First video I've seen from you and awesome job man very helpful. Music is perfect, I appreciate it being subtle and your voice is still clear to hear
Thank you so much for your vidoes. I like the videos without music .
Data Structures:
Arrays:
- Read: O(1)
- Insertion: O(n)
- Deletion: O(n)
- Fast at reading but slow at insertion and deletion.
Linked Lists:
- Read: O(n)
- Insertion: O(1)
- Deletion: O(1)
- Slow at reading but efficient for insertion and deletion.
HashMaps:
- Read: O(1)
- Insertion: O(1)
- Deletion: O(1)
- Similar to arrays but with named indexes (keys); unordered but provide fast lookup.
Stacks:
- Push: O(1)
- Pop: O(1)
- Peak: O(1)
- Follow the LIFO (Last In, First Out) principle; useful for fast retrieval of the topmost element but can be cumbersome for inserting or deleting elements in the middle or end.
Queues:
- Enqueue: O(1)
- Dequeue: O(1)
- Front: O(1)
- Follow the FIFO (First In, First Out) principle; the first element in line is the first to come out. Think of them as playlists for organizing items in order of arrival.
Trees:
- Read/Search: O(log n)
- Insertion: O(log n)
- Deletion: O(log n)
- Nodes connected by edges; root, parent-child connections.
Binary Trees:
- Efficient searching of ordered values.
- Follow a binary search property where left child nodes are less than the parent and right child nodes are greater.
- Useful for tasks like number guessing games or dictionary implementations.
Graphs:
- Traversal/Search: O(V + E) (V: number of vertices, E: number of edges)
- Insertion: O(1)
- Deletion: O(1)
- Versatile models for connections between nodes and edges; can be directed or undirected with no neighboring limit. Can include cycles and weights on paths. Used for tasks like route optimization.
thanks dude
thank you !!
Dude you f nailed it! The well made graphics of the video, along the real life examples are top tier! Couldn't explain better!
I've never hit the Subscribe and the bell button faster in my life. This was awesome! Im excited to see more in-depth videos about data structures
I’m excited to keep making videos! Comments like these are always so motivating. Thanks so much!
Thanks a lot. The video was awesome. Never lost focus for a single second. I can imagine how much effort you've put into it. Keep it up.
Thanks so much! It’s honestly so much effort haha people don’t realize. I didn’t even realize until I started. This video took around 12 hours to bring to completion, from scripting to recording audio to making video graphics and then editing everything together. I appreciate comments like these, makes it all worth it! :)
you got a good clear voice ,you use simple English words most of the non native English speakers gets hard to cope up with native English speaker's tutorials and there is no point of seeing the content in native language due to bad quality ,you are maintaining both ,and the best thing is you use *simple examples* ,which are not region specific , so we all get it easily, make more dsa videos and put them in sequence wise ,easy to find, perfect animation ,no extra content on screen
Thanks so much! Making a Top 7 Algorithms video in the same style :)
True!
IF ONLY I HAD FOUND YOU SOONER .. this was so simply explained!!!! Subscribed right away!
How tf do you only have 21k dude this is the best video on data structures I’ve ever seen!!!
I just told myself the same thing. His videos are informative and well-produced.
facts!!
Your content is underrated man. Click the video thinking this was some 100k views video about DS. The effort you put in this one is fantastic. The way you explain the concepts visually helps me understand a lot faster. You gain a new sub today. Hope to see more and more of you.
Thanks so much! I’ll keep making content to keep helping people out :)
Man the way you explain this and with the visualization was just perfect ! , I'm going to keep referring back to this video as I learn DSA thank you !
Simple explanation and the pace is slow enough to process the information comfortably. I have watched countless of vids on data structures and this is by far my favourite. Great work!!
This.
Bro I'm a Game Development Student and i had to study Algorithms and Data Structures but i didnt understand anything from just bold explanations and terms I am not familiar with. Your video just helped me a lot. Giving a real life example really makes the understanding better. Keep doing what you are doing!
This was amazing, an incredibly dull topic, explained so well. Kudos!
Thank you for your videos! I'm about to be a freshman CS major and starting to learn Data Structures and Algorithms for software engineering interview prep. I would love to see videos on standard algorithms and go in-depth about major data structures and algorithms!
I have all of those in the works! Everything you need for software engineering interviews, I have you covered! :)
@@Codebagel Sounds amazing! Looking forward to them!
All of these videos have been super helpful so far, and this one convinced me to subscribe. Thank you for providing this resource!
You’re welcome! Thank you for the kind words! I’m glad this one was able to convince you to stick around :)
so far you are the best to explain those concepts. Keep Up!
You are so clear and concise. Thank you for making this video.
Yeah thank you bro for this video. I just starting my course in Algorithm Analysis and Design, so this video was a helpful refresher. Those are the exact same data structures in the course (Bachelor's Degree Level)
Love the analogies that you use to explain the Data structure concept. Thank you 🙏🏾
Good work! Just what I needed a very 'simple'...and, also, perfectly understandable...explanation of an, otherwise, very 'complex' subject. Well done! Thanks! ;-)
8:40 the most top parent node is also called the ROOT and the last children on the very bottom which dont have any other nodes connected to them are called LEAFES.
This is amazingly explained and the examples you give are also very helpful. Thanks a lot!❤
This is precise and complete understanding exhibited by the person explaining. Thank you
Hey man, I'd love to see more videos about data structures. Perhaps with some code examples and a little more in-depth descriptions of memory allocation for each, if at all possible. Maybe dedicating entire videos to a single data structure would do the trick? And then later have a playlist for data structures? I really loved the way CS50's intro to data structures was taught. This is an incredibly important topic for me, being mostly self-taught and trying to solve programming problems everyday. I wish I studied CS in undergrad... but videos like these make it a little more bearable. Thanks for your hard work!
Oh and I'm especially interested in graphs now... hahaha
I plan on making videos for every data structure with code examples, solving problems with them, and memory allocation more in-depth!
@@Codebagel Legend!
I have been learning DSA python codes for a while and did not really get why we use each of the DS you mentioned. Now it makes so much sense. Thank you so much. This is one of the channels I had to both follow on work and personal account.
Well descriptive, easy to understand. I have been learning DSA with Python. Find few videos on DSA with Python. Yours is the best, plz keep it up.
Straightforward and simple! Thanks I enjoyed the video.
Hi. A very good video. At 2:57 you mentioned LinkedLists had O(1) for a deletion operation. How would that be the case if you have to start from the first node and traverse linearly until you find the node you want to delete? I think a deletion is O(n), same as a read.
Great Work, very useful !! Can't wait for the detailed videos.
Thanks! First one coming next week!
This video is amazing 😂. Thank Jesus, I found it. Please make more videos... you're really great and breaking down concepts
Please keep going!
Thank you! Your videos are top-notch. I'd love to see you make a complete paid course on teaching data structures and algorithms in Python. This would be really valuable for the community since there aren't many good courses on DSA (sadly).
One of the best videos on data structures that ive seen
I have exam in a few hour s and this is bby far the best explanation i found!
Love it! Thanks for your effort. This is video is diamond 💎
You earned a subscriber today!! I want more of these videos!!
More coming soon!
Wow, what a concise and informative breakdown of the top 7 data structures! 📚💻 Codebagel really knows how to simplify complex concepts for us. From arrays to graphs, each explanation was clear and easy to understand. Thanks for providing such valuable insights into data structures essential for interviews, classes, and projects. Can't wait to implement this knowledge! 👏🚀 #datastructures #coding #softwareengineer
Nice video! I'm just confused about the binary search tree example. If you wanted to search a dictionary, why use binary search O(log n) instead of just dictionary/hashmap lookup O(1)? Am I missing something? Second question: You can do binary search without a tree, so what is up with the tree? What do you gain from using a tree data structure?
indded we want more dsa videos , explanation with example u naild it !!
I'll make sure to keep making them! Thanks for the motivation!
By reading - you meen random access. If you have index/iterator already reading from linked list isn't slower, it just locating the partiular index is slower. So, visiting every element is the same complexity for arrays and linked list (if we omit non contiguous memory access pattern and cache misses)
This content is pure gold. Suscribed.
In the linked lists example, you show a diagram where the data is stored with a finite number of spots in between items. What would happen if I tried to insert in between two items right next to each other?
Linked List: 5 _ _ 4 3 _ 8
Insert 6 in the 2nd spot (starting from 0)
Would it be slower? And would it shift everything after the insert space by one until there is an empty space, or would it shift everything back more to create extra space?
Also, nice video.
Are you trying to insert the 6 between the 4 and 3?
Ultimately it doesn’t matter where you store the new 6 in memory. The whole advantage of linked lists is items don’t need to be next to each other. You can store the 6 somewhere else, and have the element before it point to it.
So if the current linked list (the one you gave) is like this: 5 -> 4 -> 3 -> 8
You can store the 6 somewhere else in memory, and have the 4 now point to it:
5 -> 4 -> 6 -> 3 -> 8
Does that clear up your question? If not, please feel free to explain and I’ll definitely try and help!
@@Codebagel Yea, that makes much more sense now. Thanks for clearing up that items can be stored anywhere.
@@alvinkim9800 No worries, always up to help clear things up where I can!
why does inserting into linked lists take O(1)? dont you have to follow the adresses from the first item to the position to insert which takes O(n)?
this is indeed helpful ; looking forward to join the community for happy learning
Easier said than done I know, but you need to produce more content.
You will rock my brother soon!!!!! Keep Going.
Thank you! I’ll keep making content don’t worry!
Thank you. Best explained🥇. After long time I just clicked on bell icon.
Love your content man! Hope to see more from you.
Thanks so much Exstra! Follow up video to this one (Top 7 Algorithms for Interviews) coming in the next few days!
Amazing video !!! keep up the great work learned alot and love the backgroudn music !!
Thanks dude! You’re gonna hit 100 soon, everyone go sub to this guy^!
@@Codebagel haha i appreciate you !!
Amazing, simple and so visual!!!! Subscribed , thank you thank you thank you ! -Monika
Dude you explained these super well! TYSM!!!
I’ve never subbed to someone this quick.
useful and informative great job and good content. I want to see more like this one.
The graph expression is amazing and easy makes sense
Very helpful, thanks! Can't wait for more videos! Keep it up!
this channel deserves a million subs
Found you on reddit ... Loving the video. Subscribed.
Thank you!
@@Codebagel More tree videos please. DFS, BFS, Heaps would be really helpful.
Great explanations!!! Keep up the good work
Go go data structures! Nice video, keep it up.
Great video, Mr. Bagel!
Thank you, Mr. Wellman!
23.1K SUBS! U DESERVE MORE!
Thanks so much! Hopefully 50k soon! :)
Amazing. Thank you. Is there a play list going over each in depth?
Excellent explanation! Great quality also!
Thanks so much!
I often heard about hash maps, now i get it that is simple a key value pair, like dictionaries or Json.
This was very good and very easy to understand. Wish they taught it this way in college.
Thanks so much! I’ll keep making videos like this to help everyone who needs it!
@@Codebagel That's awesome. Ill keep an eye out!
Nice video.
As you mentioned please make a separate and dedicated video on graph data structure.
This was very good. Please do more of these
Thank you, I will!
Wow! Excellent explanation! Thanks so much
Thank you for explanation and channel as it is helping me understand data structures as I am doing Python. I would love to see some coding examples using data structures. Otherwise, keep up the good work
simple and clear. keep it up!
Great video! Love the content :)
Great video. Very clear. Thanks!
This is a masterpiece, love ya videos ❤️
Thanks so much Dazle! I’ll keep trying to make great content!
thank you very much for wonderful content and explanation
keep it up sir
greetings from Yemen
No one refers to the child nodes as `leaves' the leaves are the terminal nodes. In other words the nodes with no children.
Awesome, thank you for all the great work!!!
couple of months ago, I stumbled upon some very bad blog entries about data structures; though list of data structures was almost the same, the way you present is at least intelligible; I don't know why what you do isn't a widespread norm; this video deserves more attention for at least being correct (sounds kind of sad, but yes, IT education is still in a state where bad content is too easy to find);
Thank you! That’s why I chose to make this style of video, because I found I was struggling with the same issue as well.
In a DAW like FL Studio, are the numbers of beats per measure and tracks arrays or linked lists?
Amazing explanation. Where can i find the in depth videos on each of the data structures.
Super helpful! thank you so much!
This video is very helpful for basic theory of DSA
And thanks to you also buddy for such a quality content.
You’re welcome! Thank you for the support :)
thanks for ur videos, they are well made and easy to understand!
you are simply the best please do algorithms as well
Algorithms video should be coming up in the next week or so!
In order to delete something from a linked list, don’t you have to find it first? So how is deletion O(1)? I don’t understand. Someone help?
Same question
@@LinhNguyen-nh8oq ok i figured it out.
For linked list, access to first node is O(1) so deleting the first node is always O(1) [if you keep a reference to the tail, same applies for the last node]. For every other nodes in between, the deletion is O(n) because - as i said - you need to find it, in order to delete it. Other techniques might apply where you keep a reference to those nodes in between with some smart way, and then yes you can delete it in O(1) because you keep that reference. But you need to find it at least once, and this try will be O(n). Hope you 're ok with that now.
@@petersteel7735 thanks, you save me time
Bro, why didn't you come to me when searching for the course? This video is the clearest and most useful one.
Bro said thanks for 1K💀, Bruh you deserves 100k and even more pls keep doing the good work
subs+=1
You nailed it. Can you make more of such videos on DSA
Definitely! I’ll be making videos on all of them!
@@Codebagel Thanks, really appreciate your hard work for helping out.
@@spiritual5750 no worries! I’m glad people are enjoying my content! Make sure you hit the 🔔 button to turn on notifications so you see my videos when I upload next. Thanks so much!
@@Codebagel i land on your channel from your earlier videos. Already subbed and notification on. 😀
Thank you so much for this! Can’t wait for more!
Thanks for the kind words! More coming soon :)
Explained really beautifully ❤
Hello bro just a small doubt when we look at a question how do we understand which data structure we need to apply or does it depend on our experience of solving more & more questions which helps us to understand which method of data structure we need to apply!!!
Is there a video for Binary Trees? and Graphs?
This is a very good video, if you just want to do a basic revision!...
How is read complexity of array is O(1) ? It should also be O(n), isn’t it ?
read, when talking about an array means accessing an element at a specific index.
for example if we have array[1, 2, 3, 4, 5] and we go to index 3, we will get array[3] which corresponds to value 4.
You will better understand if you think about an array as a special type of hash map where keys are indexes and values are elements at those corresponding indexes.
hash_map = {
0: 1,
1: 2,
2: 3,
3: 4,
4: 5
}
As we already know accessing an element by key in a hash map is constant time operation, therefore when we go to index 3, we immediately grab 4. we are not iterating or anything like that.
searching by value in an array takes O(n) time because you need to iterate through all the elements to find the value you are looking for, but reading by "index" takes O(1) constat time.
I hope that helps.
8:43 leaf nodes are any node that do not have children. Children nodes can have children, unless they are a leaf node ( which by definition have no children ). A child node can be a parent node, just like in real life, but unlike in real life, there is a "terminal" node ( the leaf node ).
great. keep going man.
Thank you!
Good grief your videos are amazing 🎉
Thanks so much! I really appreciate all the support!
Amazing !! Thanks.
Whay did you use to make the graphics?? Nice video
5:31, the realization caught me.