# Golang Data Structures and Algorithms

Data structures and algorithms written in Golang.

## Table of Contents

- [Requirements](#requirements)
- [Data Structures](#data-structures)
- [Algorithms](#algorithms)
- [License](#license)

## Requirements

Go 1.14+

## Data Structures

- [Bag](data_structures/bag)
- [Array](data_structures/array)
    - [Dynamic Array](data_structures/array/dynamic_array.go)
- [Linked List](data_structures/linkedlist)
    - [Singly Linked List](data_structures/linkedlist/single_linked_list.go)
    - [Circular Linked List](data_structures/linkedlist/circular_linked_list.go)
    - [Doubly Linked List](data_structures/linkedlist/doublylinkedlist/doubly_linked_list.go)
- [Stack](data_structures/stack)
    - [Array Stack](data_structures/stack/array_stack.go)
    - [Linked Stack](data_structures/stack/linked_stack.go)
    - [Slice Stack](data_structures/stack/slice_stack.go)
- [Queue](data_structures/queue)
    - [Array Queue](data_structures/queue/array_queue.go)
    - [Linked Queue](data_structures/queue/linked_queue.go)
    - [Circular Queue](data_structures/queue/circular_queue.go)
    - [Deque](data_structures/queue/deque)
        * [Array Deque](data_structures/queue/deque/array_deque.go)
        * [Linked Deque](data_structures/queue/deque/linked_deque.go)
        * [Circular Deque](data_structures/queue/deque/circular_deque.go)
- [Hashing](data_structures/hashing)
    - [Array Symbol Table](data_structures/hashing/symboltable/array_st.go)
    - [Sequential Search Symbol Table](data_structures/hashing/symboltable/sequential_search_st.go)
    - [Binary Search Symbol Table](data_structures/hashing/symboltable/binary_search_st.go)
    - [Separate Chaining Hash Table](data_structures/hashing/hash_table_sc.go)
    - [Linear Probing Hash Table](data_structures/hashing/hash_table_lp.go)
- [Set](data_structures/set)
    - [Binary Search Tree Set](data_structures/set/bst_set.go)
    - [Hash Set](data_structures/set/hashset.go)
- [Tree](data_structures/tree)
    - [Binary Search Tree](data_structures/tree/bst.go)
- [Heap](data_structures/heap)
    - [Max Heap](data_structures/heap/max_heap.go)

## Algorithms

- [Sorts](algorithms/sorts)
    - [Selection Sort](algorithms/sorts/selection_sort.go)
    - [Insertion Sort](algorithms/sorts/insertion_sort.go)
    - [Merge Sort](algorithms/sorts/mergesort)
- [Searches](algorithms/searches)
    - [Binary Search](algorithms/searches/binary_search.go)

## License

[MIT @ Huang Kai](./LICENSE)