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
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!!
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.
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)
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.
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!
Good work! Just what I needed a very 'simple'...and, also, perfectly understandable...explanation of an, otherwise, very 'complex' subject. Well done! Thanks! ;-)
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).
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!
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.
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
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
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.
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?
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);
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!
@@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!!!