Professional Certificate: Data Structures and Algorithms
The Georgia Institute of Technology (GTx)
- Learn how to differentiate between linear data structures like linkedlists, arrays, arraylists, stacks, and queues, and select the correct structure for a given situation. Analyze data structure performance with the course visualization tool.
- Visualize and study nonlinear/hierarchical data structures such as Binary Trees, BSTs and Heaps. Examine tree operations & algorithms. Implement a HashMap that uses key-value pairs to store data. Explore probabilistic data structures like SkipLists.
- To differentiate between complex tree data structures, like AVL and (2-4) trees, understand their self-balancing techniques and implementations. Visualize and examine various Divide and Conquer sorting algorithms along with their performance.
- Analyze & implement various Pattern Matching algorithms from KMP to Rabin-Karp. Study essential graph traversal algorithms in order to implement Dijkstra’s Shortest Path, and construct Minimum Spanning Trees. Delve in Dynamic Programming.
Note: Although the course is taught in Java, solutions here will be rewritten in C.
Module | Assignment |
---|---|
1 | ArrayList |
2 | TODO |
3 | TODO |
4 | TODO |
5 | TODO |
6 | TODO |
7 | TODO |
8 | TODO |
9 | TODO |
10 | TODO |
11 | TODO |
12 | TODO |
13 | TODO |
14 | TODO |
- Linux (test on Debian 12)
make
task
gcc
To build all binaries, run:
make all
Run each binary to interact with data structure or algorithm covered in each module:
$ ./bin/mod1.elf
*** Module 1: ArrayList (integers only) ***
Choose an action:
-----
0 Quit
1 Print array
2 Add to front
3 Add to back
4 Remove from front
5 Remove from back
-----
This repository is intended to showcase work completed in pursuit of a professional certificate as part of a professional portfolio. This code is not intended for redistribution, and the original author of this repository is not responsible for any academic penalties or other damages incurred from plagiarized code.