# Algorithms and Data Structures

# Graph Algorithms

Graph theory is the study of graphs, which are mathematical structures used to model pairwise relations between objects. A graph in this context is made up of vertices (also called nodes or points) which are connected by edges (also called links or lines). A distinction is made between undirected graphs, where edges link two vertices symmetrically, and directed graphs, where edges link two vertices asymmetrically. [Wikipedia (opens new window)]

Learn more about graph algorithms here.

# Sorting algorithms

A sorting algorithm is an algorithm that puts elements of a list in a certain order. [Wikipedia (opens new window)]

Learn more about sorting algorithms here.

# Hash Tables

A hash table (hash map) is a data structure that implements an associative array abstract data type, a structure that can map keys to values. A hash table uses a hash function to compute an index, also called a hash code, into an array of buckets or slots, from which the desired value can be found. [Wikipedia (opens new window)]

Learn more about hash tables here.

# Tree Data Structures

A tree is a widely used abstract data type (ADT) that simulates a hierarchical tree structure, with a root value and subtrees of children with a parent node, represented as a set of linked nodes. [Wikipedia (opens new window)]

Learn more about trees here.