This repo contains the implementation of all data structures developed as part of the Data Structures (COMP242) course at Birzeit University.
- Linked List: A linear data structure containing of nodes, where each node points to the next.
- Doubly Linked List: A type of linked list where each node contains a data value, a reference to the next node, and a reference to the previous node. This allows traversal in both forward and backward directions.
- Cursor Array: An array implementation of the Linked List.
- Stack: A LIFO (Last In, First Out) data structure.
- Queue: A FIFO (First In, First Out) data structure.
- Binary Search Tree: A tree structure where each node has at most two children, and the left child is smaller than the parent node, while the right is greater or equal.
- AVL Tree: A self-balancing binary search tree, where the difference in heights of the left and right subtrees of any node is at most 1.
- Hash Table: A data structure that stores key-value pairs and provides fast lookup. There are three types of hashing: Spearate Chaining, Open Adressing, and Double Hashing.
- Heap or Priority Queue: A specialized tree-based structure that satisfies the heap property.
This repo is intended to help you understand and practice data structure concepts. Please use it as a reference and learning tool rather than simply copying and pasting the code :)