Important Notes Most of these articles are from Medium written by Techies Without having the notion “I know this, I know that” – Read through the articles and get your fundamentals When you try to understand the concepts ask the questions – Why ? How ? What ? For e.g., if you say the time complexity of binary search is O(logn) then be prepared to explain why ? Still there are lot more areas to cover but right now it has taken shape and this is time to read the articles and understand the concepts Data Structures & Algorithms are very important for your placement. No 1 subject I would say. ECE, EEE, EIE students – These articles will help you learn the basics in Data Structures Important Notes CSE students - You have a lot to revise especially advanced topics such Dynamic Programming, Divide & Conquer, Pattern Matching, Data Compression & Greedy Algorithms I liked these articles because they have explained it with nice diagrams and I found it to be a lot more creative than text books Happy Learning & Wish you all the best Data Structures 8 Common Data Structures every Programmer must know https:// towardsdatascience.com/8-common-data-structures-every-progr ammer-must-know-171acf6a1a42 Time and Space complexities of commonly used data structures https://www.bigocheatsheet.com/ Big O A beginner's guide to Big O notation https://rob-bell.net/2009/06/a-beginners-guide-to-big-o-notati on / Big O Cheat Sheet https://www.bigocheatsheet.com/ Big-O Notation: A Simple Explanation with Examples https://medium.com/better-programming/big-o-notation-a-si mple-explanation-with-examples-a56347d1daca Linked Lists What’s a Linked List, Anyway? [Part 1] https://medium.com/basecs/whats-a-linked-list-anyway-part-1 -d8b7e6508b9d What’s a Linked List, Anyway? [Part 2] https:// medium.com/basecs/whats-a-linked-list-anyway-part-2-131d96f 71996 Introduction to Linked Lists in C - A visual guide to linked lists https:// medium.com/better-programming/introduction-to-linked-lists-i n-c-80fc426a6a2f Reversing a Doubly Linked List (Whiteboarding Practice) https://medium.com/@sofia.benitez39/reversing-a-doubly-link ed-list-whiteboarding-practice-bbecb38b7734 Stack Data Structures: An Introduction to Stacks https://medium.com/better-programming/data-structures-an-i ntroduction-to-stacks-a902cd830018 Implementing a Stack using Linked List https:// towardsdatascience.com/linked-lists-the-stack-fa73bc2a37ad Stacks and Overflows https://medium.com/basecs/stacks-and-overflows-dbcf7854dc 67 Queue Implementing a Queue using Linked List https:// towardsdatascience.com/linked-lists-the-queue-7c1f709aa141 To Queue Or Not To Queue https://medium.com/basecs/to-queue-or-not-to-queue-2653bcd e5b04 Binary Search Binary Search Practice Problems https://medium.com/@ codingfreak/binary-search-practice-problems-4c856cd9f26c 5 Easy Steps to Mastering Binary Search https://medium.com/@ johnathonwood/technical-interviews-part-ii-divide-and-conque r-your-binary-search-anxiety-484d5f531c6f Understanding the Binary Search https://medium.com/@krunal.vora/understanding-the-binary- search-9539de37ea91 Trees How To Not Be Stumped By Trees https://medium.com/basecs/how-to-not-be-stumped-by-trees- 5f36208f68a7 8 Useful Tree Data Structures Worth Knowing https:// towardsdatascience.com/8-useful-tree-data-structures-worth-kn owing-8532c7231e8c Binary Trees 4 Types of Tree Traversal Algorithms https ://towardsdatascience.com/4-types-of-tree-traversal-algorithms -d56328450846 Binary Search Trees Binary Trees: The Search Tree https:// towardsdatascience.com/an-introduction-to-binary-trees-a-man ageable-approach-to-finding-values-6b35735b1096 Leaf It Up To Binary Trees https://medium.com/basecs/leaf-it-up-to-binary-trees-11001aa f746d AVL Trees The Little AVL Tree That Could self balance https:// medium.com/basecs/the-little-avl-tree-that-could-86a3cae410c 7 Data Structure and Algorithms - AVL Trees https://www.tutorialspoint.com/data_structures_algorithms/ avl_tree_algorithm.htm Red Black Trees Painting Nodes Black With Red-Black Trees https://medium.com/basecs/painting-nodes-black-with-red-bl ack-trees-60eacb2be9a5 Binary Trees: Red Black https://towardsdatascience.com/red-black-binary-tree-maintai ning-balance-e342f5aa6f5 Heap Binary Trees: The Heap https:// towardsdatascience.com/binary-trees-the-heap-381efd4a4611 Build A Max Heap https://medium.com/@ randerson112358/lets-build-a-max-heap-161d676394e Build A Min Heap https://medium.com/@randerson112358/lets-build-a-min-heap -4d863cac6521 Learn By Practice: Heaps Data Structure https://medium.com/@dipanshu.ycce07/learn-by-practice-hea ps-data-structure-50e5be082974 Heap Learning to Love Heaps https:// medium.com/basecs/learning-to-love-heaps-cef2b273a238 Priority Queues An Intro to Priority Queues https://medium.com/@angeloacebedo/an-intro-to-priority-que ues-a28c2e09db70 Tries Trying to Understand Tries https:// medium.com/basecs/trying-to-understand-tries-3ec6bede0014 Tries – Brilliant Learning https://brilliant.org/wiki/tries/ B Trees B Tree Visualization https://www.cs.usfca.edu/~galles/visualization/BTree.html Busying Oneself With B-Trees https:// medium.com/basecs/busying-oneself-with-b-trees-78bbf10522 e7 B-Tree Tutorial - An Introduction to B-Trees https://www.youtube.com/watch?v=C_q5ccN84C8 2-3 Trees & B Trees https://ocw.mit.edu/courses/electrical-engineering-and-comp uter-science/6-046j-design-and-analysis-of-algorithms-spring-2 015/recitation-notes/MIT6_046JS15_Recitation2.pdf Sorting Sorting Out The Basics Behind Sorting Algorithms https://medium.com/basecs/sorting-out-the-basics-behind-sort ing-algorithms-b0a032873add Sorting Bubbling Up With Bubble Sorts https://medium.com/basecs/bubbling-up-with-bubble-sorts-3d f5ac88e592 Sorting Pivoting To Understand Quicksort [Part 1] https://medium.com/basecs/pivoting-to-understand-quicksort- part-1-75178dfb9313 Pivoting To Understand Quicksort [Part 2] https://medium.com/basecs/pivoting-to-understand-quicksort- part-2-30161aefe1d3 Sorting Algorithm 5: Quick Sort — aj’s guide for Algo and DS https://medium.com/@ajay.thousand/sorting-algorithm-5-quic k-sort-ajs-guide-for-algo-and-ds-cea0e71d7dbc Making Sense of Merge Sort [Part 1] https://medium.com/basecs/making-sense-of-merge-sort-part- 1-49649a143478 Making Sense of Merge Sort [Part 2] https://medium.com/basecs/making-sense-of-merge-sort-part- 2-be8706453209 Sorting Basic Algorithms — Heapsort https:// towardsdatascience.com/basic-algorithms-heapsort-31d64d6919 a1 Getting To The Root Of Sorting With Radix Sort https://medium.com/basecs/getting-to-the-root-of-sorting-with -radix-sort-f8e9240d4224 Heapify All The Things With Heap Sort https://medium.com/basecs/heapify-all-the-things-with-heap-s ort-55ee1c93af82 Hashing Hashing Out Hash Functions https:// medium.com/basecs/hashing-out-hash-functions-ea5dd8beb4d d Consistent Hashing https:// medium.com/system-design-blog/consistent-hashing-b9134c8a9 062 Linear Probing & Quadratic Probing https://medium.com/@ matthewharrilal/open-addressing-resolving-collisions-one-day-a t-a-time-49415ca73f71 Understanding “Hash-Table” without any code https ://medium.com/@cakrawalabuka/understanding-hash-table-w Divide & Conquer Algorithms A Gentle Introduction to Divide and Conquer Algorithms https:// medium.com/brandons-computer-science-notes/a-gentle-intro duction-to-divide-and-conquer-algorithms-5398542d4067 Divide and Conquer Interview Questions and Practice Problems https://medium.com/@ codingfreak/divide-and-conquer-interview-questions-and-prac tice-problems-8855e45f4200 Divide and Conquer Algorithms https:// medium.com/brandons-computer-science-notes/divide-and-co nquer-algorithms-4e83d9999ffa Divide and Conquer Algorithms https://medium.com/cracking-the-data-science-interview/divi de-and-conquer-algorithms-b135681d08fc Divide & Conquer Algorithms Divide and Conquer Paradigm in Algorithms https://medium.com/@ gaurav_52429/divide-and-conquer-paradigm-in-algorithms-ef4 3fb2222f5 Count Inversions https:// medium.com/the-andela-way/count-inversions-5fe3288f11fb Code Challenge Algorithms - How to Divide and Conquer https://medium.com/@chris.hague/code-challenge-algorithms -7289ff88aad6 Divide & Conquer Algorithms What is Divide and Conquer Algorithm https://medium.com/@ mohitrawal0001/what-is-divide-and-conquer-algorithm-517093 03e742 Divide and Conquer strategy to solve Maximum Subarray Problem https://medium.com/@ rajdeepbharati/divide-and-conquer-strategy-to-solve-maximu m-subarray-problem-45a72acbe3cd Intro to Divide and Conquer Algorithms https://medium.com/jeremy-gottfrieds-tech-blog/intro-to-divi de-and-conquer-algorithms-9a2d9659c12 Divide and Conquer Algorithms https://medium.com/@cristinamulaslopez/divide-and-conque r-algorithms-d02141ecb3f1 Greedy Algorithms Greedy Algorithm and Dynamic Programming https:// medium.com/cracking-the-data-science-interview/greedy-algo rithm-and-dynamic-programming-a8c019928405 Greedy Algorithm Explained using LeetCode Problems https://medium.com/algorithms-and-leetcode/greedy-algorit hm-explained-using-leetcode-problems-80d6fee071c4 Top 7 Greedy Algorithm Problems https://medium.com/@ codingfreak/top-7-greedy-algorithm-problems-3885feaf9430 Greedy Algorithms https://medium.com/the-graph/greedy-algorithms-f91424e56 780 Greedy Algorithms How greedy algorithms work https://medium.com/@ richggall/how-greedy-algorithms-work-4d44688c86da Greedy Algorithm https://medium.com/@ randerson112358/greedy-algorithm-f09985f3448b Minimum Number of Platforms problem using greedy approach https://medium.com/@parv51199/minimum-number-of-platf orms-problem-using-greedy-approach-ba67409bd1f4 Job Sequencing Problem with Deadline https://medium.com/@warlihardik2809/job-sequencing-probl em-with-deadline-1f9457d80aef Greedy Algorithms Greedy Algorithms — The Car Fueling Problem https://medium.com/@ TheGeekiestOne/greedy-algorithms-the-car-fueling-problem-a 35ccc9bb011 Algorithm for deciding how much platform would be needed based on the train/bus traffic using greedy algorithm... https://medium.com/@tankdarshan365/algorithm-for-decidin g-how-much-platform-would-be-needed-based-on-the-train-bu s-traffic-using-7b0c804d2645 Dynamic Programming What is Dynamic Programming? https:// www.educative.io/courses/grokking-dynamic-programming-p atterns-for-coding-interviews/m2G1pAq0OO0 Kadane’s Algorithm — (Dynamic Programming) — How and Why does it Work? https://medium.com/@rsinghal757/kadanes-algorithm-dyna mic-programming-how-and-why-does-it-work-3fd8849ed73d How to Solve Any Dynamic Programming Problem https:// blog.pramp.com/how-to-solve-any-dynamic-programming-pro blem-603b6fbbd771 How to solve the Knapsack Problem with dynamic programming https://medium.com/@fabianterh/how-to-solve-the-knapsack Dynamic Programming A Systematic Approach to Dynamic Programming https:// medium.com/better-programming/a-systematic-approach-to-d ynamic-programming-54902b6b0071 Less Repetition, More Dynamic Programming https://medium.com/basecs/less-repetition-more-dynamic-pr ogramming-43d29830a630 Top 50 Dynamic Programming Practice Problems https:// blog.usejournal.com/top-50-dynamic-programming-practice-pr oblems-4208fed71aa3 Learning Dynamic Programming with a popular coding interview question https://medium.com/dataseries/learning-dynamic-programm ing-with-a-popular-coding-interview-question-5a5c0170fa44 Dynamic Programming Tutorial-1-(My experiences)-(Dynamic Programming) https:// blog.usejournal.com/tutorial-my-experiences-1-dynamic-progr amming-5fa956967c6d Tutorial-2-(My Experiences)-Dynamic Programming https://medium.com/@ karangujar43/tutorial-2-my-experiences-dynamic-programmin g-7254e35cec1a Tutorial-3-(My Experiences)-Dynamic Programming https://medium.com/@ karangujar43/tutorial-3-my-experiences-dynamic-programmin g-c711b9ff1071 Tutorial-4-(My Experiences)-Dynamic Programming https://medium.com/@ karangujar43/tutorial-4-my-experiences-dynamic-programmin g-9df183219b12 Dynamic Programming Dynamic Programming Tutorials https://procoderforu.com/category/dynamic-programming/ Algorithmic Approach Looking into the Knapsack Problem and its Greedy and Dynamic Programming solutions from an optimization model’s perspective. https://medium.com/@ shivam_m7/looking-into-the-knapsack-problem-and-its-gree dy-and-dynamic-programming-solutions-from-an-35ab14412 0d1 Surfing on Greedy Algorithms and Dynamic Programming https://medium.com/@ swarnasowminarayanan/a-dive-into-greedy-algorithms-and- dynamic-programming-66548bfc9310 Dynamic Programming Vs Divide-and-Conquer https:// itnext.io/dynamic-programming-vs-divide-and-conquer-2fea 680becbe Algorithmic Approach Divide and Conquer and Dynamic Programming Algorithms https://medium.com/@bindeshwar.web/divide-and-conquer- and-dynamic-programming-algorithms-9a344e49dbb9 String(Pattern) Matching Algorithms Knuth Morris Pratt Algorithm Demystified https://medium.com/@ giri_sh/string-matching-kmp-algorithm-27c182efa387 The Knuth-Morris-Pratt Algorithm(KMP) https://medium.com/@ niralipatel047/the-knuth-morris-pratt-algorithm-kmp-9e8f466cf bdf Pattern Searching algorithm Knuth–Morris–Pratt aka KMP Algorithm https://medium.com/@pivincii/pattern-searching-algorithm-k nuth-morris-pratt-aka-kmp-algorithm-13f4a9fd968b Boyer Moore String Matching Algorithm https://medium.com/algopods/boyer-moore-string-matching- algorithm-842060bc7b55 String(Pattern) Matching Algorithms How grep search works https://medium.com/@ ongspxm/the-boyer-moore-string-search-is-an-ingenious-peice- of-search-algorithm-69514ede91ef Calculating Boyer Moore Bad Character Table with examples https://medium.com/@sula.ranawake/calculating-boyer-moor e-bad-character-table-with-examples-d855e04d5bd8 Data Compression Algorithms Huffman Encoding https://medium.com/@ shubhi.rustagi99/huffman-encoding-86847993c298 Huffman Coding https://medium.com/@media.sbw/huffman-coding-%E9%9C %8D%E5%A4%AB%E6%9B%BC%E7%B7%A8%E7%A2%BC-4b 88a3479dd8 Implementation of Huffman encoding https://medium.com/@ hemalatha.psna/implementation-of-huffman-encoding-b19aa34 4cb65 LZW Compression Algorithm https://medium.com/100-days-of-algorithms/day-56-lzw-3d4 c4a63e4d2 Graph Theory Spinning Around In Cycles With Directed Acyclic Graphs https://medium.com/basecs/spinning-around-in-cycles-with-d irected-acyclic-graphs-a233496d4688 Finding The Shortest Path, With A Little Help From Dijkstra https://medium.com/basecs/finding-the-shortest-path-with-a-l ittle-help-from-dijkstra-613149fbdc8e Heapify All The Things With Heap Sort https://medium.com/basecs/heapify-all-the-things-with-heap- sort-55ee1c93af82 Graph Theory From Theory To Practice: Representing Graphs https://medium.com/basecs/from-theory-to-practice-represent ing-graphs-cfd782c5be38 Graph Theory Going Broad In A Graph: BFS Traversal https://medium.com/basecs/going-broad-in-a-graph-bfs-trave rsal-959bd1a09255 Breaking Down Breadth-First Search https://medium.com/basecs/breaking-down-breadth-first-sear ch-cebe696709d9 Demystifying Depth-First Search https://medium.com/basecs/demystifying-depth-first-search-a 7c14cccf056 Deep Dive Through A Graph: DFS Traversal https://medium.com/basecs/deep-dive-through-a-graph-dfs-tr aversal-8177df5d0f13 Wish you all the best