Implementation of various data structures and algorithms in different programming languages: the main target is assimilating the general perspective of each data structure and algorithm.
Data structures start with elementary topics such as linked lists, stacks, and queues, then continue with complex structures. The list below shows each topic. Data Structures
Algorithms start with divide and conquer and continue with sorting, matching, graphs, etc. The list below shows each topic. Algorithms
- Elementary Data Structures
- Array list
- Linked lists
- Stack & Queues
- Implementing pointers and objects
- Representing rooted trees
- Binary Search Trees
- Hash Tables
- Advanced Data Structures
- B-Trees
- Fibonacci Heaps
- van Emde Boas Trees
- Disjoint Sets
- Divide and Conquer
- Sorting and Order
- Insertion sort
- bubble sort
- Shellsort
- Radix sort
- Heapsort
- Merge sort
- Quicksort
- Medians and Order Statistics
- Matching Algorithms
- Graph Algorithms
- Elementary Graph Algorithms
- Breadth-first search
- Depth-first search
- Topological sort
- Minimum Spanning Trees
- Single-Source shortest path
- All-Pairs shortest path
- Maximum flow
- Elementary Graph Algorithms
While preparing this repo, the books and sources given below were used as the main sources.
- Introction to Algorithmis, Third Edition. Thomas H.Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein.
- Analysis of Algorithms - An Active Learning Approach, Second Edition. Jeffrey J. McConnell
- Data Structures and Algorithms in Java, Michael T. Goodrich, Roberto Tamassia, Michael H. Goldwasser