Skip to content

Latest commit

 

History

119 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

C-DS

Table Of Contents

About

C-DS is a data structure visualization app designed to help users understand and interact with various data structures. Whether you're a student learning about algorithms and data structures or a professional looking to analyze and optimize your code, C-DS provides a comprehensive set of tools and features to make your data structure exploration seamless and insightful.

It was originally an academic project for the 2024 Data Structures course in Faculty of Computer Science - Ain Shams University.

Features

User Interface Settings

  • GUI scale adjuster to resize the visualization interface.

  • Light and dark mode themes for comfortable viewing.

settings-menu.png

Grid Visualization Tools

  • Customize grid width and height.

  • Set start and end positions on the grid.

  • Add or remove obstacles to create different pathfinding scenarios.

  • Visualize traversal algorithms such as DFS, BFS, Dijkstra’s, and A*.

  • Enable or disable diagonal movement in traversals.

  • Camera follow mode to track the current exploration point.

  • Adjustable camera speed for better control of the visualization flow.

grid.showcase.mp4

Graph Visualization Tools

  • Move nodes freely to customize the graph layout.

  • Move camera to navigate the graph smoothly.

  • View adjacent nodes to understand connectivity.

  • Set starting and ending nodes for algorithm visualization.

  • Generate random graphs, weighted or unweighted, directed or undirected.

  • Import and visualize pre-existing graphs by input.

  • Visualize algorithms including DFS, BFS, Dijkstra’s, and Minimum Spanning Tree (Kruskal’s Algorithm).

Dijkstra.showcase.mp4

Basic Data Structure Visualizations

Understand foundational data structures through interactive visualizations of:

  • Stack: Visualize LIFO operations like push and pop.

  • Queue: Explore FIFO operations with enqueue and dequeue.

  • Linked List: See how nodes are connected and manipulated.

  • Deque: Double-ended queue operations from both ends.

  • Vector (Dynamic Array): Dynamic resizing and element access.

Linked-List.showcase.mp4

Advanced Data Structure Visualizations

  • Hashtable: Understand key-value storage with hash functions.

  • Hashmap: Explore an implementation of associative arrays.

  • Disjoint Set Union (DSU): Visualize union and find operations used in connectivity problems.

  • Trie (Prefix Tree): See how tries handle fast prefix searches and autocomplete.

advanced-ds.showcase.mp4

Demo

Demo

▶️ Watch Demo

Installation & Running

To run the program locally, follow these steps:

  1. Clone the repository

  2. This project uses imGUI for its interface, so ensure you have the appropriate dependencies or build environment set up (e.g., C++ compiler with imGUI integration).

  3. Compile and run App.cpp

About

A data structure visualization app designed to help users understand and interact with various data structures.

Resources

Stars

15 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages