Skip to content

CS2210: Focuses on data structures, algorithms, and their design/selection for problem-solving. Covers algorithm correctness, complexity analysis, and object-oriented implementation in Java. Topics: algorithm analysis, dictionaries, hash tables, trees (BST, AVL, B-trees), graphs, traversals, algorithms, and sorting.

Notifications You must be signed in to change notification settings

tkhalidd/CS2210-Data-Structures-and-Algorithms

Repository files navigation

CS2210: Data Structures and Algorithms

This repository contains assignments completed for CS2210 at Western University.

Course Overview

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.

Assignments Overview

Assignment 1

Implementation of a game board configuration system with hash table data structures

  • Configurations.java: Game board configuration management and state evaluation
  • HashDictionary.java: Hash table implementation for storing game configurations
  • Data.java: Data object representation for game configurations Features:
  • Game state evaluation
  • Win/draw detection
  • Hash-based configuration storage
  • Efficient data retrieval

Assignment 2

Binary Search Tree implementation for a dictionary system

  • BSTDictionary.java: Dictionary implementation using BST
  • BSTNode.java: Node structure for the binary search tree
  • Key.java: Key object implementation for tree organization
  • Record.java: Record object combining key and data
  • Interface.java: User interface for dictionary operations Features:
  • Binary search tree operations
  • Key-based record management
  • Translation and search functionality
  • Command processing system

Assignment 3

Graph-based maze solving implementation

  • Graph.java: Graph data structure implementation
  • GraphNode.java: Node/vertex representation
  • GraphEdge.java: Edge implementation with types and labels
  • Maze.java: Maze solver using graph traversal Features:
  • Graph construction and manipulation
  • Depth-first search maze solving
  • Edge weight and type management
  • Path finding algorithms

Course Learning Outcomes

  • 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

About

CS2210: Focuses on data structures, algorithms, and their design/selection for problem-solving. Covers algorithm correctness, complexity analysis, and object-oriented implementation in Java. Topics: algorithm analysis, dictionaries, hash tables, trees (BST, AVL, B-trees), graphs, traversals, algorithms, and sorting.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages