This repository contains my coursework and implementations for Data Structures and Patterns at Swinburne University of Technology.
It demonstrates my skills in C++ programming, object-oriented design, templates, iterators, and algorithm efficiency.
- ProblemSet1/ → Vector & Matrix Abstract Data Types (ADTs)
- ProblemSet2/ → Iterators and Vigenère Cipher (AutoKey)
- ProblemSet3/ → Priority Queue (Template-based)
- ProblemSet4/ → List ADT using Doubly Linked Lists
Additional files:
Vector2D.h / Vector2D.cpp
– Implementation of 2D vector operationsVector3D.h / Vector3D.cpp
– Implementation of 3D vector operationsMatrix3x3.h / Matrix3x3.cpp
– Matrix operations including determinant, inversion, multiplicationMain.cpp
– Sample driver program for testing
- Implemented Vector2D, Vector3D, Matrix3x3 classes.
- Applied operator overloading (
==
,<<
,*
) for clean mathematical operations. - Practiced constructors, assignment operators, and template basics.
- Built ForwardIterator and BidirectionalIterator following STL conventions.
- Implemented AutoKey iterator to dynamically extend cipher keys.
- Created an encoder/decoder for the Vigenère Cipher using iterators.
- Implemented a template-based Priority Queue with dynamic resizing.
- Supported operations:
push
,pop
,top
while maintaining stable ordering. - Practiced operator<, comparators, and dynamic memory management.
- Designed a doubly linked list with
shared_ptr
andweak_ptr
for safe memory management. - Implemented copy/move semantics for efficient object handling.
- Provided iterators for forward and reverse traversal.
- Clone this repository:
git clone https://github.com/kimthu123/Data-Structures-and-Patterns.git cd Data-Structures-and-Patterns