This repository contains all of the files that I submitted for the completion of Courses 1-4 in the Data Structures and Algorithms Specialization on Coursera. All of the files use the command terminal to input data.
All of the material covered in each course can be found here. However, here are quick overviews of each:
-
Course 1: Algorithmic Toolbox
- This course covers basic algorithmic techniques and ideas for computational problems arising frequently in practical applications: sorting and searching, divide and conquer, greedy algorithms, dynamic programming.
-
Course 2: Data Structures
- This course covers common data structures that are used in various computational problems. This includes: binary search trees; disjoint sets; dynamic arrays; stacks; non-priority and priority queues; minimum spanning trees; suffix arrays, trees, and tries.
-
Course 3: Algorithms on Graphs
- This course covers what a graph is and what are some of the most important properties of a graph. This includes several traversal techniques and useful things to do while traversing the graph.
-
Course 4: Algorithms on Strings
- Covers several techniques used when dealing with strings in Computer Science: This includes: building suffix tries, trees, and arrays; implimenting the *Knuth-Morris-Pratt (KMP) Algorithm for finding a substring in a string.