data-structures

module
v1.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 8, 2025 License: MIT

README ΒΆ

Data Structures and Algorithms in Go

This repository contains implementations of various data structures and algorithms in Go programming language. It serves as both a learning resource and a practical reference for developers.

πŸ“š Data Structures

Basic Data Structures
  • Linked List - Documentation
    • Singly Linked List
    • Doubly Linked List
    • Circular Linked List
    • Iterator Pattern Implementation
    • Thread-safe Operations
    • Generic Type Support
  • Stack - Documentation
    • Array-based Implementation
    • Linked List-based Implementation
    • Thread-safe Operations
    • Generic Type Support
  • Queue - Documentation
    • Array Queue Implementation
    • Linked List Queue Implementation
    • Priority Queue
    • Circular Queue
    • Thread-safe Operations
    • Generic Type Support
  • Tree - Documentation
    • Binary Tree
    • Binary Search Tree (BST)
    • AVL Tree (Self-balancing)
    • Red-Black Tree
    • B-Tree
    • Trie (Prefix Tree)
    • N-ary Tree
    • Expression Tree
    • Thread-safe Operations
  • Heap - Documentation
    • Binary Heap
    • Min Heap
    • Max Heap
    • Fibonacci Heap
    • Binomial Heap
    • Priority Queue Implementation
    • Thread-safe Operations
  • Hash - Documentation
    • Hash Table
    • Hash Map
    • Hash Set
    • Consistent Hashing
    • Linear Probing
    • Quadratic Probing
    • Double Hashing
    • Separate Chaining
    • Thread-safe Operations
  • OrderedMap - Documentation
    • Thread-safe Implementation
    • Order Preservation
    • Concurrent Operations Support
    • Skip List Implementation
    • Advanced Features (Copy, Clear, Range iteration)
    • Generic Type Support
Advanced Data Structures
  • Graph - Documentation
    • Adjacency Matrix
    • Adjacency List
    • Weighted Graph
    • Directed Graph
    • Undirected Graph
    • Graph Algorithms
      • Depth First Search (DFS)
      • Breadth First Search (BFS)
      • Dijkstra's Algorithm
      • Bellman-Ford Algorithm
      • Floyd-Warshall Algorithm
      • Kruskal's Algorithm
      • Prim's Algorithm
      • Topological Sort
      • Strongly Connected Components
      • Cycle Detection

πŸ”§ Algorithms - Documentation

Sorting Algorithms
  • Bubble Sort
  • Selection Sort
  • Insertion Sort
  • Quick Sort
  • Merge Sort
  • Heap Sort
Searching Algorithms
  • Linear Search
  • Binary Search (Iterative and Recursive)
  • Jump Search
  • Interpolation Search
  • Exponential Search
  • Fibonacci Search

πŸš€ Getting Started

Prerequisites
  • Go 1.23 or higher
Installation
git clone https://github.com/mstgnz/data-structures.git
cd data-structures
go mod download
Running Tests
go test ./...

🀝 Contributing

Contributions are welcome! Please read our Contributing Guidelines for details on how to submit pull requests.

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ” Project Structure

.
β”œβ”€β”€ algorithms/    # Basic algorithm implementations
β”œβ”€β”€ advanced/      # Advanced data structures
β”œβ”€β”€ examples/      # Usage examples
β”œβ”€β”€ graph/         # Graph implementations
β”œβ”€β”€ hash/         # Hash table implementations
β”œβ”€β”€ heap/         # Heap implementations
β”œβ”€β”€ linkedlist/   # Linked list implementations
β”œβ”€β”€ orderedmap/   # Ordered map implementations
β”œβ”€β”€ queue/        # Queue implementations
β”œβ”€β”€ stack/        # Stack implementations
β”œβ”€β”€ tree/         # Tree implementations
└── utils/        # Utility functions

✨ Features

  • Clean and efficient implementations
  • Comprehensive test coverage
  • Well-documented code
  • Generic implementations where applicable
  • Performance optimized
  • Thread-safe implementations where necessary
  • Order preservation in map operations
  • Concurrent access support with proper synchronization
  • Advanced data structure features (Copy, Clear, Range operations)

πŸ“Š Performance

Each implementation includes performance considerations and Big O notation analysis in its respective documentation.

πŸ”„ Version History

See CHANGELOG.md for release history and version details.

Directories ΒΆ

Path Synopsis
examples
Package heap implements various heap data structures
Package heap implements various heap data structures

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL