https://github.com/saadarazzaq/4d-notepad-data-structures-project
Notepad implementation using 4 Dimensional Linked Lists
https://github.com/saadarazzaq/4d-notepad-data-structures-project
cpp data-structures linked-list semester-project
Last synced: about 1 year ago
JSON representation
Notepad implementation using 4 Dimensional Linked Lists
- Host: GitHub
- URL: https://github.com/saadarazzaq/4d-notepad-data-structures-project
- Owner: SaadARazzaq
- Created: 2023-03-05T23:39:52.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2024-03-09T16:56:00.000Z (about 2 years ago)
- Last Synced: 2025-01-23T16:14:24.007Z (over 1 year ago)
- Topics: cpp, data-structures, linked-list, semester-project
- Language: C++
- Homepage:
- Size: 1.9 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 4D Notepad Data Structures
## Overview
This project is a C++ implementation of a notepad application with all the basic text editing functionalities. It utilizes 4 Dimension linked lists and queues to manage text data and operations efficiently.
## Features
- **Open Notepad:** Allows users to input text into the notepad.
- **Delete Text:** Enables users to delete specific text from the notepad.
- **Copy Text:** Copies selected text from the notepad for pasting elsewhere.
- **Paste Text:** Pastes copied text into the notepad at a specified location.
- **Find Text:** Searches for specific text within the notepad.
- **Replace Text:** Replaces occurrences of specific text with another text within the notepad.
- **Undo Text:** Reverts recent changes made to the text in the notepad.
- **View Notepad:** Displays the content of the notepad.
- **Count Total Words:** Calculates and displays the total number of words in the notepad.
## Approach
The linked list approach is utilized to manage the text data in the notepad efficiently. Here's how it works:
- **Node Class (`node`):** Represents each word or segment of text in the notepad. Each node contains text data and pointers to the next, previous, up, and down nodes, forming a 4D linked list structure.
- **Inserting Text:** Text data is inserted into the linked list by creating new nodes and connecting them appropriately using the `open_insert_txt_1` function.
- **Deleting Text:** Text can be deleted from the notepad by removing nodes from the linked list using the `delete_txt_2` function.
- **Traversing the Linked List:** The linked list is traversed to perform various operations such as displaying the content of the notepad and counting the total number of words.
- **Linked List Structure:** The linked list structure maintains the order of text data and facilitates efficient insertion and deletion operations.
## Usage
1. Upon launching the application, a main menu will be displayed with various options.
2. Choose an option by entering the corresponding number and follow the on-screen instructions.
3. Perform text editing operations as prompted.
4. Use option "0" to exit the application.
## Dependencies
- This project relies on standard C++ libraries and does not have any external dependencies.
## Contributors
- [Saad Abdur Razzaq](https://github.com/saadarazzaq)