GitHub - oktayparlak/data-structures-and-algorithms: This repository contains implementations of various data structures and algorithms in different programming languages. It serves as a resource for learning and practicing fundamental concepts in computer science. · GitHub
Skip to content

About

This repository contains implementations of various data structures and algorithms in different programming languages. It serves as a resource for learning and practicing fundamental concepts in computer science.

Resources

Stars

3 stars

Watchers

1 watching

Forks

Latest commit

 

History

15 Commits

Folders and files

Repository files navigation

Data Structures and Algorithms

This repository contains implementations of various data structures and algorithms in different programming languages. It serves as a resource for learning and practicing fundamental concepts in computer science.

Table of Contents

Introduction

The field of computer science relies heavily on data structures and algorithms to solve complex problems efficiently. Understanding these fundamental concepts is crucial for software engineers and developers.

This repository aims to provide a comprehensive collection of data structures and algorithms implemented in different programming languages. It covers a wide range of topics, including arrays, linked lists, stacks, queues, trees, graphs, sorting algorithms, searching algorithms, and more.

Data Structures

The data-structures directory contains implementations of various data structures. Each data structure is organized into its own folder and includes the necessary code files and tests. The implementations are available in different programming languages such as C++, Java, Python, and JavaScript.

Here are some of the data structures included in this repository:

  • Array
  • Linked List
  • Stack
  • Queue
  • Binary Tree - Basic binary tree with traversal methods (inorder, preorder, postorder, level-order)
  • Binary Search Tree - BST with insert, search, delete, findMin/findMax operations
  • Heap - Min/Max heap with insert, extract, peek, and heapify operations
  • Graph - Adjacency list representation with DFS/BFS traversal support

Feel free to explore the individual folders to find the data structure you're interested in.

Algorithms

The algorithms directory contains implementations of different algorithms. Just like the data structures, each algorithm has its own folder with the necessary code files and tests. The algorithms cover a wide range of topics, including sorting, searching, graph traversal, dynamic programming, and more.

Some of the algorithms included in this repository are:

  • Bubble Sort
  • Insertion Sort
  • Selection Sort
  • Quick Sort
  • Binary Search - Iterative and recursive implementations with lower/upper bound variants
  • Depth-First Search (DFS) - Recursive and iterative graph/tree traversal with path finding
  • Breadth-First Search (BFS) - Level-order traversal with shortest path and distance computation
  • Dijkstra's Algorithm - Single-source shortest path with priority queue optimization

You can navigate to the individual algorithm folders to find the implementation in your preferred programming language.

Contributing

Contributions to this repository are welcome! If you'd like to add new data structures, algorithms, or improve existing implementations, please follow these steps:

  1. Fork the repository.
  2. Create a new branch for your feature or bug fix.
  3. Make the necessary changes and commit them.
  4. Push your changes to your forked repository.
  5. Submit a pull request to the main repository.

Please make sure to follow the existing code style and include tests for your changes.

License

This repository is licensed under the MIT License. You are free to use, modify, and distribute the code for personal or commercial purposes. However, please attribute the original author by providing a link to this repository.

About

This repository contains implementations of various data structures and algorithms in different programming languages. It serves as a resource for learning and practicing fundamental concepts in computer science.

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages