﻿ Nathan Paternoster | Data Structures

# Data Structures (Syllabus)

The second semester in a series of programming courses; this course focused on programming data structures and how they compare in different use cases. In addition we covered several object oriented concepts including classes, objects, abstraction, and other programming techniques such as pointers and recursion. The language used was C++.

• ### Insertion, Selection, Bubble Sort

These three O(N2) sorting algorithms were coded and then tested for their performance. The results are graphed to determine which algorithm is the fastest overall.

Code
Output
Performance Graph
• ### Matrix Arithmetic

We implemented a matrix as a dynamic, two-dimensional array. We wrote functions to resize, copy, and set the matrices. The matrix arithmetic includes addition, subtraction, multiplication, and transposition.

Code
Output
• ### Quicksort

In this assignment we implemented the quicksort algorithm and tested it.

Code
Output
• ### Supercalculator

We implemented a custom vector object that represents a "big number" - a number with an unlimited amount of digits. We wrote addition, subtraction, multiplication, division, and factorial functions that can operate on the big numbers to perform very large calculations.

Code
Output