Data Structure refers to a way of organizing data in a computer in such a way that it can be used effectively. There are several various data structures namely Arrays, Linked Lists, Stack, Queue, Graph, Hash Tables, etc. All data structures have their way use and requirement. The algorithm is a step-by-step procedure that is designed and defined as a set of instructions that is directed to be executed in a particular fashion for getting desired output for the given input. It is used for solving various problems involving the data. The algorithm is generally created in an independent manner of any required languages like C, C++, Python, etc. A particular algorithm can be implemented in more than one programming language.
Real life? Sure!
Befriending someone on FB? Breadth First Search.
Professor noticed and you running towards the exit? Depth First Search.
Waiting to board the bus? Queue.
Heard the word modesty and looking in the dictionary? Binary search.
Not sure about that and searching phone book for dad? Tree.
Filling your wallet with credit cards? Array.
Locating the car keys in a hurry? Hash.
The main aim is to find complex topics with the easiest explanations and you probably won't be able to find that in one book only. Look for simple explanations in as many different books as possible. These are the books that I used to grasp the understanding of complicated topics covered throughout the syllabus.
Introduction to Algorithms by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein.
Python 3 Object Oriented Programming by Dusty Phillips.
Sams Teach Yourself Data Structures and Algorithms in 24 Hours by Robert Lafore
Algorithms Unlocked by Thomas H. Cormen
These are all the links that you will be needing to understand some core concepts with the best explanations available on Youtube. There are some interesting videos on certain topics that will elevate your desire to know more about this course. I have also included links to some websites that will help you visualize how algorithms actually run. Learn to visualize not memorize!
These are the best and most detailed hand-written analysis notes for Data Structures and Algorithms.
These include:
Insertion Sort (Bubble and Selection Sort are similar to Insertion, hence I didn't feel the need to do all three of them.)
Binary Search (Linear Search analysis is pretty straightforward hence not included.)
Merge Sort (This is for a specific type of merge sort, there are 3 types in my notes. You can find all three of them in the pdf file "All Codes 302". There is a little bit difference in all three of them. Keep that in mind.)
Stacks and Queues
Coming Soon.