{"id":26489955,"url":"https://github.com/taharachedi/custom_queuearr_library-cpp","last_synced_at":"2025-07-28T05:07:01.967Z","repository":{"id":281182768,"uuid":"944471447","full_name":"taharachedi/Custom_QueueArr_Library-CPP","owner":"taharachedi","description":"Not a standard queue—it's a unique implementation using my custom Dynamic Array class, modified for learning purposes while retaining core functionality.","archived":false,"fork":false,"pushed_at":"2025-03-07T12:08:11.000Z","size":766,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-20T07:53:36.068Z","etag":null,"topics":["data-structures","queue"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/taharachedi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-07T12:02:15.000Z","updated_at":"2025-03-07T12:08:20.000Z","dependencies_parsed_at":"2025-03-07T13:23:02.550Z","dependency_job_id":"ee1e46f5-2f4a-4ebd-b89d-225f233852c1","html_url":"https://github.com/taharachedi/Custom_QueueArr_Library-CPP","commit_stats":null,"previous_names":["taharachedi/custom_queuearr_library-cpp"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/taharachedi/Custom_QueueArr_Library-CPP","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taharachedi%2FCustom_QueueArr_Library-CPP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taharachedi%2FCustom_QueueArr_Library-CPP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taharachedi%2FCustom_QueueArr_Library-CPP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taharachedi%2FCustom_QueueArr_Library-CPP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/taharachedi","download_url":"https://codeload.github.com/taharachedi/Custom_QueueArr_Library-CPP/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taharachedi%2FCustom_QueueArr_Library-CPP/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267464522,"owners_count":24091505,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-28T02:00:09.689Z","response_time":68,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-structures","queue"],"created_at":"2025-03-20T07:53:39.250Z","updated_at":"2025-07-28T05:07:01.915Z","avatar_url":"https://github.com/taharachedi.png","language":"C++","readme":"# 📌 Queue Implementation (clsMyQueueArr) ⚡\n\n\u003e **A C++ template-based queue implementation using a dynamic array (`clsDynamicArray`), supporting basic queue operations along with advanced functionalities. 🚀**\n\n---\n\n## 🌟 Project Overview\n\nThe `clsMyQueueArr` class provides a **generic queue** implementation in C++, leveraging the `clsDynamicArray` class for efficient memory management and queue operations. It supports fundamental operations like **enqueue (push)**, **dequeue (pop)**, **peek front \u0026 back**, and extended functionalities for dynamic queue modifications.\n\n### 🔹 Core Functionalities:\n- **Enqueue (Push) \u0026 Dequeue (Pop)** 🚀\n- **Access Front \u0026 Back Elements** 🔍\n- **Check Queue Size \u0026 Emptiness** 📏\n- **Reverse Queue Elements** 🔄\n- **Modify \u0026 Insert Elements Within Queue** ✏️\n- **Clear the Queue in One Call** ✨\n\nThis queue implementation is **generic**, meaning it can store any data type using C++ templates.\n\n---\n\n## ✨ Features\n\n### 🔹 Basic Queue Operations\n- **`Push(Value)`**: Adds an element to the back of the queue.\n- **`Pop()`**: Removes the front element from the queue.\n- **`Front()`**: Retrieves the front element of the queue.\n- **`Back()`**: Retrieves the last element of the queue.\n- **`Size()`**: Returns the number of elements in the queue.\n- **`IsEmpty()`**: Checks if the queue is empty.\n- **`Print()`**: Displays the queue elements.\n\n### 🔹 Extended Functionalities\n- **`GetItem(Index)`**: Retrieves the value at a specific index.\n- **`Reverse()`**: Reverses the order of queue elements.\n- **`UpdateItem(Index, NewValue)`**: Updates the value at a given index.\n- **`InsertAfter(Index, Value)`**: Inserts an element after a specified index.\n- **`InsertAtFront(Value)`**: Inserts an element at the front of the queue.\n- **`InsertAtBack(Value)`**: Inserts an element at the back of the queue.\n- **`Clear()`**: Removes all elements from the queue.\n\n---\n\n## 🚀 How It Works\n\n### 🔹 Push \u0026 Pop\n- Elements are added using `Push(Value)` at the **back** of the queue.\n- Elements are removed using `Pop()` from the **front**.\n\n### 🔹 Accessing Elements\n- `Front()` and `Back()` allow **direct access** to the first and last elements.\n- `GetItem(Index)` retrieves an element at a specific position.\n\n### 🔹 Modifications \u0026 Reversal\n- `UpdateItem(Index, NewValue)` modifies an existing value.\n- `Reverse()` swaps element positions to **reverse** the queue order.\n- `InsertAfter(Index, Value)`, `InsertAtFront(Value)`, and `InsertAtBack(Value)` allow **custom insertions**.\n\n### 🔹 Memory Management\n- The queue dynamically allocates memory for new elements.\n- `Clear()` safely removes all elements to prevent memory leaks.\n\n---\n\n## 📚 Potential Enhancements\n\n- 🏗 **Iterator Support**: Implementing iterators for STL-like traversal.\n- ⏳ **Time Complexity Optimization**: Enhancing performance for large datasets.\n- 🗃️ **Persistent Storage**: Implementing file handling for saving queue data.\n- 🚀 **Thread Safety**: Making the queue thread-safe for concurrent operations.\n\n---\n\n## ⚙️ Technologies Used\n\n- **Language**: C++\n- **Templates**: Enables the queue to store any data type.\n- **Dynamic Array-based Queue**: Uses `clsDynamicArray` for flexible data storage.\n- **Memory Management**: Utilizes dynamic memory allocation.\n\n---\n\n## 🎯 Learning Outcomes\n\nThis project demonstrates:\n- ✅ **Queue operations (push, pop, front, back, size, empty check)**\n- ✅ **Generic programming with C++ templates**\n- ✅ **Efficient memory management with dynamic arrays**\n- ✅ **Advanced queue modifications (insertion, reversal, updating)**\n\n---\n\n## 📜 License\n\nThis project is **open-source**. Feel free to modify and enhance it! 🚀\n\n---\n\n## 🤝 Contributing\n\nContributions are welcome! If you have ideas for improvements, submit a Pull Request.\n\n---\n\n## 🏁 Ready to Explore?\n\n### 🚀 How to Run\n1. **Download** the repository.\n2. **Include** `clsMyQueueArr.h` in your project.\n3. **Compile \u0026 Run** your C++ program with a standard compiler (e.g., `g++ main.cpp -o output`).\n4. **Test** different queue operations.\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaharachedi%2Fcustom_queuearr_library-cpp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftaharachedi%2Fcustom_queuearr_library-cpp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaharachedi%2Fcustom_queuearr_library-cpp/lists"}