ahmadhabibi14 / Go-Algorithms-and-DataStructures

Collection of various data structures and algorithms implemented in the Go programming language

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Algorithms and Data Structures in Go

Welcome to the Data Structures and Algorithms in Go repository! This repository serves as a collection of various data structures and algorithms implemented in the Go programming language. Whether you're a beginner looking to learn the fundamentals or an experienced developer seeking to refresh your knowledge, this repository has something for you.

Table of Contents

Introduction

Understanding data structures and algorithms is crucial for every programmer. They form the backbone of efficient software development and are essential for solving complex problems. This repository aims to provide you with a solid foundation in data structures and algorithms, using the Go programming language.

Getting Started

To get started with this repository, follow these steps:

  1. Clone the repository to your local machine:
    git clone --depth=1 https://github.com/ahmadhabibi14/Go-Algorithms-and-DataStructures.git
  2. Install Go on your machine. Visit the official Go website for installation instructions specific to your operating system.
  3. Navigate to the repository's directory:
    cd Go-Algorithms-and-DataStructures
  4. Explore the available data structures and algorithms implemented in Go. Each topic is organized in its own directory, containing the source code and relevant documentation.

Data Structures

The following data structures are currently implemented in this repository:

  • Arrays
  • Linked Lists
  • Stacks
  • Queues
  • Trees
    • Binary Trees
    • Binary Search Trees (BST)
    • AVL Trees
    • B-Trees
  • Heaps
    • Binary Heaps
    • Priority Queues
  • Hash Tables
  • Graphs
    • Directed Graphs
    • Undirected Graphs
    • Weighted Graphs
  • Tries
  • Hash Sets
  • Hash Maps
  • Doubly Linked Lists

Algorithms

The following algorithms are currently implemented in this repository:

  • Searching
    • Linear Search
    • Binary Search
    • Hashing (Hash Table)
  • Sorting
    • Bubble Sort
    • Selection Sort
    • Insertion Sort
    • Merge Sort
    • Quick Sort
    • Heap Sort
    • Radix Sort
    • Counting Sort
    • Shell Sort
  • Graph
    • Depth-First Search (DFS)
    • Breadth-First Search (BFS)
    • Dijkstra's Algorithm (Shortest Path)
    • Bellman-Ford Algorithm (Shortest Path)
    • Prim's Algorithm (Minimum Spanning Tree)
    • Kruskal's Algorithm (Minimum Spanning Tree)
    • Topological Sorting
  • Tree
    • Binary Search Tree (BST)
    • AVL Tree
    • Red-Black Tree
    • Heap (Binary Heap)
    • Trie (Prefix Tree)
  • Dynamic Programming
    • Fibonacci Sequence
    • Knapsack Problem
    • Longest Common Subsequence
    • Matrix Chain Multiplication
    • Coin Change Problem
  • Backtracking
    • N-Queens Problem
    • Sudoku Solver
    • Subset Sum Problem
    • Hamiltonian Path
    • Graph Coloring

Take your time to examine each algorithm and its implementation. Experiment with different inputs and test their performance.

Contributing

Contributions to this repository are welcome! If you would like to add a new data structure or algorithm, fix a bug, or improve the existing code, follow these steps:

  1. Fork the repository.
  2. Create a new branch for your feature or bug fix:
    git checkout -b feature/new-data-structure
  3. Make your changes and commit them with descriptive messages:
    git commit -m "Add new data structure: AVL Tree"
  4. Push your changes to your forked repository:
    git push origin feature/new-data-structure
  5. Open a pull request in this repository, explaining the changes you made and their purpose.

About

Collection of various data structures and algorithms implemented in the Go programming language

License:MIT License


Languages

Language:Go 100.0%