This project contains various data structure implementations in Go, created for the assignature "Algoritmos y Programación II" lectured at FIUBA (Facultad de Ingeniería de la Universidad de Buenos Aires).
The project includes implementations of the following data structures:
- BST (Binary Search Tree)
- Dynamic Stack
- Graph
- Hash Table
- Heap (Priority Queue)
- Linked List
- Linked Queue
- UnionFind
A binary search tree that supports standard operations such as insertion, deletion, and search. It also supports range queries and iterators.
A stack data structure that grows and shrinks dynamically based on the number of elements.
A graph data structure that supports directed/undirected and weighted/unweighted graphs with basic operations like adding and removing vertices and edges.
A hash table (dictionary) implementation using separate chaining for collision resolution.
A heap is a specialized tree-based data structure that satisfies the heap property. It is used to implement priority queues.
A linked list is a linear data structure where each element (node) contains a reference (link) to the next element in the sequence.
A linked queue is a queue data structure implemented using a linked list. It supports FIFO (First In, First Out) operations.
A union-find data structure (disjoint-set) with path compression and union by rank.