This repository contains assignments completed for CS2210 at Western University.
CS2210 focuses on data structures, algorithms, and their design/selection for problem-solving. The course covers algorithm correctness, complexity analysis, and object-oriented implementation in Java.
Implementation of a game board configuration system with hash table data structures
Configurations.java: Game board configuration management and state evaluationHashDictionary.java: Hash table implementation for storing game configurationsData.java: Data object representation for game configurations Features:- Game state evaluation
- Win/draw detection
- Hash-based configuration storage
- Efficient data retrieval
Binary Search Tree implementation for a dictionary system
BSTDictionary.java: Dictionary implementation using BSTBSTNode.java: Node structure for the binary search treeKey.java: Key object implementation for tree organizationRecord.java: Record object combining key and dataInterface.java: User interface for dictionary operations Features:- Binary search tree operations
- Key-based record management
- Translation and search functionality
- Command processing system
Graph-based maze solving implementation
Graph.java: Graph data structure implementationGraphNode.java: Node/vertex representationGraphEdge.java: Edge implementation with types and labelsMaze.java: Maze solver using graph traversal Features:- Graph construction and manipulation
- Depth-first search maze solving
- Edge weight and type management
- Path finding algorithms
- Understanding of fundamental data structures (BST, Hash Tables, Graphs)
- Algorithm design and implementation
- Object-oriented programming in Java
- Complexity analysis and algorithm efficiency
- Problem-solving using appropriate data structures