Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mstgnz/data-structures
Data Structures With Go
https://github.com/mstgnz/data-structures
data data-structures go golang
Last synced: 1 day ago
JSON representation
Data Structures With Go
- Host: GitHub
- URL: https://github.com/mstgnz/data-structures
- Owner: mstgnz
- License: mit
- Created: 2021-10-10T11:22:13.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2025-01-01T18:15:43.000Z (13 days ago)
- Last Synced: 2025-01-01T18:20:59.118Z (13 days ago)
- Topics: data, data-structures, go, golang
- Language: Go
- Homepage: https://github.com/mstgnz/data-structures
- Size: 1.54 MB
- Stars: 7
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
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](linkedlist/README.md)
- Singly Linked List
- Doubly Linked List
- Circular Linked List
- Iterator Pattern Implementation
- Thread-safe Operations
- Generic Type Support
- **Stack** - [Documentation](stack/README.md)
- Array-based Implementation
- Linked List-based Implementation
- Thread-safe Operations
- Generic Type Support
- **Queue** - [Documentation](queue/README.md)
- Array Queue Implementation
- Linked List Queue Implementation
- Priority Queue
- Circular Queue
- Thread-safe Operations
- Generic Type Support
- **Tree** - [Documentation](tree/README.md)
- 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](heap/README.md)
- Binary Heap
- Min Heap
- Max Heap
- Fibonacci Heap
- Binomial Heap
- Priority Queue Implementation
- Thread-safe Operations
- **Hash** - [Documentation](hash/README.md)
- Hash Table
- Hash Map
- Hash Set
- Consistent Hashing
- Linear Probing
- Quadratic Probing
- Double Hashing
- Separate Chaining
- Thread-safe Operations
- **OrderedMap** - [Documentation](orderedmap/README.md)
- 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](graph/README.md)
- 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](algorithms/README.md)
### 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
```bash
git clone https://github.com/mstgnz/data-structures.git
cd data-structures
go mod download
```### Running Tests
```bash
go test ./...
```## 🤝 Contributing
Contributions are welcome! Please read our [Contributing Guidelines](CONTRIBUTING.md) for details on how to submit pull requests.
## 📝 License
This project is licensed under the MIT License - see the [LICENSE](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](CHANGELOG.md) for release history and version details.