An open API service indexing awesome lists of open source software.

https://github.com/rohitswami16/data-structure-visualization-in-jframe

This Java-based project provides an interactive graphical user interface (GUI) for visualizing and performing operations on various fundamental data structures. The application is designed to help students and developers better understand and interact with data structures through real-time visualizations.
https://github.com/rohitswami16/data-structure-visualization-in-jframe

datastructures java javaswing jframe

Last synced: 6 months ago
JSON representation

This Java-based project provides an interactive graphical user interface (GUI) for visualizing and performing operations on various fundamental data structures. The application is designed to help students and developers better understand and interact with data structures through real-time visualizations.

Awesome Lists containing this project

README

          

# 🌟 Data Structure Visualization in JFrame

## 📜 Project Description

This project is a Java-based application that provides an interactive graphical user interface (GUI) for visualizing and performing operations on various data structures. The application is implemented using JFrame and includes the following data structures:

- 📋 Array
- đŸĨž Stack
- đŸšļ Queue
- 🔄 Circular Queue
- 🔗 Linked List

---

## ✨ Features

### 1. Data Structure Implementations

- **📋 Array**:
- Takes size, index, and a number as inputs.
- Supports the following operations:
- ➕ Insert: Add a number at a specified index.
- ❌ Delete: Remove a number from a specified index.
- 📈 Sort: Sort the array in ascending order.
- 🔍 Search: Find the index of a specified number.
- 👀 Display: View the entire array content.
- **đŸĨž Stack**:
- Takes size as input.
- Supports the following operations:
- ➕ Push: Add a number to the stack.
- ➖ Pop: Remove the top number from the stack.
- 👀 Display: View all elements in the stack.
- **đŸšļ Queue**:
- Takes size as input.
- Supports the following operations:
- ➕ Insert: Add a number to the queue.
- ❌ Delete: Remove a number from the front of the queue.
- 👀 Display: View all elements in the queue.
- **🔄 Circular Queue**:
- Takes size as input.
- Supports the following operations:
- ➕ Enqueue: Add a number to the circular queue.
- ➖ Dequeue: Remove a number from the circular queue.
- 👀 Display: View all elements in the circular queue.
- **🔗 Linked List**:
- Created upon clicking a button.
- Supports the following operations:
- 🔄 Insert First: Add a node at the beginning.
- ➕ Insert Last: Add a node at the end.
- ❌ Delete First: Remove the first node.
- ➖ Delete Last: Remove the last node.
- 👀 Display: View all nodes in the linked list.

### 2. Graphical User Interface

- đŸ–ŧī¸ Interactive JFrame-based GUI for each data structure.
- đŸŽĨ Real-time visual representation of operations.

---

## đŸ› ī¸ Prerequisites

- **Java Development Kit (JDK)**: Version 8 or later.
- **IDE**: IntelliJ IDEA, Eclipse, or NetBeans (optional).

---

## 🚀 Installation

1. **đŸ“Ĩ Clone the Repository**:

```bash
git clone https://github.com/Rohitswami16/Data-Structure-Visualization-in-JFrame.git
cd DataStructureVisualizer
```

2. **đŸ› ī¸ Compile the Code**:

```bash
javac -d bin src/**/*.java
```

3. **â–ļī¸ Run the Application**:

```bash
java -cp bin Main
```

---

## đŸ•šī¸ Usage

1. Launch the application and navigate through the GUI.
2. Select a data structure from the main menu.
3. Perform operations using the provided buttons and fields.
4. View the visual representation of each operation in real-time.

---

## 📂 Directory Structure

```
DataStructureVisualizer/
├── src/
│ ├── DSAPP/
│ │ ├── Array.java
│ │ ├── Stack.java
│ │ ├── Queue.java
│ │ ├── CircularQueue.java
│ │ ├── LinkedList.java
│ │ ├── DataStructure.java
│ │ ├── ArrayFrame.java
│ │ ├── StackFrame.java
│ │ ├── QueueFrame.java
│ │ ├── CircularQueueFrame.java
│ │ └── LinkedListFrame.java
├── README.md
└── LICENSE
```

---

# Screenshots

# Data Structures

## Home & Array




Home



Array

## Stack & Queue




Stack



Queue

## Circular Queue & Linked List




Circular Queue



Linked List

---

## 🤝 Contributing

Contributions are welcome! Please follow these steps:

1. Fork the repository.
2. Create a new branch (`git checkout -b feature-name`).
3. Commit your changes (`git commit -m 'Add feature'`).
4. Push the branch (`git push origin feature-name`).
5. Open a pull request.

---

## 📜 License

This project is licensed under the MIT License. See the `LICENSE` file for details.

---

📧 Contact
For any questions or issues, please contact:

🔗 LinkedIn: [LinkedIn](https://www.linkedin.com/in/rohit-swami16/)

🐙 GitHub: [Rohitswami16](https://github.com/Rohitswami16)