A comprehensive collection of data structures, search/sort algorithms, and advanced memory-safe programming techniques implemented in C++, C, and Python.
This repository is ideal for students, interview preparation, competitive programming, or anyone looking to strengthen their understanding of low-level algorithmic thinking.
| Folder | Description |
|---|---|
Arrays |
Basic array operations and traversal techniques. |
Linked Lists |
Implementation of singly linked list operations. |
Double Linked Lists |
Implementation of doubly linked list structures and manipulations. |
Trees |
Binary tree basics, traversals, and recursive logic. |
Binary Search |
Efficient searching in sorted collections. |
Lineer Search |
Simple linear (sequential) search examples. |
Bubble Sort |
Classic sorting algorithm with visual trace examples. |
Selection Sort |
In-place comparison sort with iterative logic. |
Insertion Sort |
Efficient for nearly sorted datasets; detailed logic included. |
Merge_Sort |
Divide and conquer sorting (recursive). |
Shell Sort |
Advanced version of insertion sort using gap sequences. |
Extra_Smart_Solutions |
Advanced memory and safety techniques in C/C++. |
This folder is dedicated to enhancing C/C++ memory safety, especially in performance-critical or low-level systems programming scenarios.
| File Name | Purpose |
|---|---|
Memory_Pooling.cpp |
Efficient dynamic memory reuse to reduce fragmentation and allocations. |
Smart_Pointers.cpp |
Demonstration of unique/shared pointer behavior and usage. |
Poisoned_Pointer.cpp |
Simulates poisoned pointers to catch use-after-free bugs. |
✅ These implementations focus on preventing memory leaks, dangling pointers, and use-after-free vulnerabilities in C/C++ environments.
- C++ (Core logic and modern memory management)
- C (Low-level data structure manipulation)
- Python (Selected algorithm demos)
- Standard Template Library (STL) in some C++ files
git clone https://github.com/abkarada/Data_Structures-Algorithm.git
cd Data_Structures-Algorithm
g++ Linked\ Lists/linked_list.cpp -o linkedlist
./linkedlist