Skip to content

This project was created with the goal of enhancing my understanding of fundamental data structures and their implementations. Each data structure included in this project has been developed from scratch, allowing me to delve into the inner workings and gain hands-on experience.

Notifications You must be signed in to change notification settings

RomanTereshchenko13/DataStructures

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DataStructures

This project was created with the goal of enhancing my understanding of fundamental data structures and their implementations. Each data structure included in this project has been developed from scratch, allowing me to delve into the inner workings and gain hands-on experience.

Data Structures Implemented:

Array - Static Array: A fixed-size array that stores elements of the same type, providing random access and constant-time element retrieval.

Vector: A dynamic array that automatically resizes itself to accommodate the number of elements inserted. It supports random access and dynamic resizing and provides a convenient interface similar to the standard library's std::vector.

LinkedList: A doubly linked list where each element, called a node, contains both data and references to the next and previous nodes. It allows efficient element insertion, deletion, and traversal in both directions.

Stack: A Last-In-First-Out (LIFO) data structure based on a linked list implementation. It supports standard stack operations such as push (insertion) and pop (removal) of elements, finding an element, swapping, and data access.

Queue: A First-In-First-Out (FIFO) data structure implemented using a linked list. It offers operations such as push (insertion) and pop (removal) of elements and functions to check if the queue is empty or retrieve the front element.

Binary Tree: A hierarchical data structure composed of nodes, where each node has at most two child nodes, referred to as the left child and right child. It enables searching, insertion, and deletion operations. Some of the methods implemented using recursion

HashTable: A data structure that uses a hash function to map keys to array indices, facilitating fast retrieval and storage of key-value pairs. It handles collisions using separate chaining and provides operations like insertion, deletion, and retrieval.

Iterator Support: To further enhance the usability and versatility of each data structure, I have implemented iterators for each one. Iterators enable easy traversal of the data structures and provide a standardized way to access and manipulate the elements they contain.

Learning Purpose

This project was primarily undertaken as a personal learning endeavor. By implementing these data structures from scratch, I aimed to deepen my understanding of their underlying concepts, design considerations, and implementation details. It has been an enriching experience, allowing me to enhance my programming skills and gain insights into the inner workings of these fundamental data structures.

About

This project was created with the goal of enhancing my understanding of fundamental data structures and their implementations. Each data structure included in this project has been developed from scratch, allowing me to delve into the inner workings and gain hands-on experience.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published