Data Structures
and Algorithms

An implementation of many notable data structures and algorithms, such as BST's and Merge Sort.

Binary Search Tree


In this repository, a Binary Search Tree is implemented with all standard functionality. The data structure supports node insertion, deletion, search and access, as well as standard traversals such as in-order, post-order, and preorder.

Merge Sort


This repository contains an implementation of a merge sort algorithm designed to organize an art database for a fictitious museum. This algorithm is then leveraged to return a few different sorted samplings of randomly generated art pieces.

Hash Table


This repository implemented a Hash Table data structure, and uses it to parse and organize text that is read from input files. The data structure supports all standard operations, such as insertion, deletion, and access. The Hash Table is then used to provide statistics on the input text.

Graphs, BFS & DFS

In this repository, a Graph data structure is implemented with all standard operations. Additionally, algorithms for Breadth-First Search and Depth-First Search are implemented to iterated through the graph of data. This data structure and sorting algorithms are then used to construct a demonstration called in which a user is able to prompt the program to create a word ladder spanning from one input word to another using either Breadth or Depth First Search.

For reference, a word ladder is a pattern created by making a list of words with only a one letter difference between words, with the goal of using this pattern to connect a start and end point.