Skip to content

Slinding puzzles - Check whether a directed graph is acyclic

Notifications You must be signed in to change notification settings

AkshayanMohandas/Slinding-Puzzles

Repository files navigation

Slinding Puzzles

This project implements a Graph Acyclicity Checker using the sink elimination algorithm to determine if a directed graph is acyclic. It also identifies and outputs cycles in non-acyclic graphs. The project was developed as part of my coursework for the BEng in Software Engineering at Informatics Institute of Technology (IIT), Sri Lanka, where I achieved a distinction score of 88/100.


Features

  • Sink Elimination Algorithm: Iteratively removes sink vertices to check graph acyclicity.
  • Cycle Detection: Identifies and outputs cycles in cyclic graphs.
  • Dynamic Input Parsing: Reads graph data dynamically from text files.
  • Graph Representation: Efficiently represents directed graphs using adjacency lists.
  • Performance Analysis: Includes runtime measurement and theoretical Big-O complexity evaluation.

Skills Gained

  • Algorithm Design: Implementing sink elimination and cycle detection.
  • Data Structures: Using adjacency lists for efficient graph representation.
  • Java Programming: File parsing, recursion, and handling dynamic data.
  • Performance Analysis: Measuring and analyzing runtime and complexity.

Releases

No releases published

Packages

No packages published

Languages