Programs and complete ADTs for common data structures implemented in C for the coursework on UCS1312: Data Structures course.
Single script, pluggable implementations are available for the following:
- Dijkstra's Shortest Path (in Python)
- Floyd-Warshal Shortest Path (in Python)
- The Josephus Problem
- Polynomial Representation and Operation using Linked List
- Sorts and Searches
- Stack (with Array)
- Queue (with Array)
- Doubly Linked List
- Circular Linked List
- Binary Search Tree (BST)
- AVL Tree
- Graphs (Adjacency List)
- Graphs (Adjacency Matrix)
- Priority Queue
An ADT implementation involves three components:
- The data structure (defined in
.h
files) - An interfacing implementation with functions to store & retreive data (defined as
..Impl.c
files) - The abstract application level, that use the interfacing implementation (defined as
..Appl.c
files)
A structured ADT implementations for the following data structures are included.
- Array-based List
- Singly Linked List
- Application: Simple student database without sorting
- Linked List -based Stacks
- Doubly Linked List -based Circular Queue
- Application: CPU Scheduling Queue
- Binary Trees
- AVL Trees
- Application: Dictionary of words with sorted insertion and search
- Graph using Adjacency Lists
- Algorithm Application: Dijkstra's Shortest Path
- Algorithm Application: Depth-first Search
- Hash Table binned with Linked Lists
- Application: Simple integer search
- Priority Queue
- Application: Employee database index by employee ID