This repository stores my revision and implementations of data structures, including:
- Dynamic Array (Source files: Java)
- Linked List (Source files: Java, Python)
- Hash Table (Source files: Java)
- Heap (Source files: Java)
- Priority Queue (as Heap) (Source files: Java)
- Directed Graph (src: Java)
- and more!
Inspired by the famous jwasham/coding-interview-university GitHub repository, I maintain this repo to keep track of my knowledge on the computer science fundamentals in a systematic manner.
I have been coding ever since my UG studies. My major was engineering (yes, not computer related), but I wrote MATLAB programs extensively to perform engineering calculation, run models and simulations for my projects. That's how I started programming, and this also led to my research studies on computational engineering later on.
Like jwasham has written in his repo, when I first started coding, I also used the built-in data structures and algorithms to build programs without much in-depth understanding. For example, the time and space complexity of different operations, how memory are allocated, and etc. Reviewing these topics has helped me to be more confident to build efficient programs, and hopefully makes me become a better programemer.
To finish this repository, the implementations will include
- Arrays
- Linked Lists
- Stacks
- Queues
- Hash Tables
- Binary Trees
- AVL Trees
- Heaps
- Tries
- Graphs
- Disjoint Sets
- Searching Algorithms
- Sorting Algorithms
- String Manipulation Algorithms
- Graph Algorithms
in the following languages:
- Python
- Java
- C++
Accelerated Computer Science Fundamentals Specialization Prof. Wade Fagen-Ulmschneider. UIUC.
The Ultimate Data Structures & Algorithms Course Mosh Hamedani. Code With Mosh.