diff --git a/src/data-structures/graph/README.md b/src/data-structures/graph/README.md index 6d2247fd..ec1d1efe 100644 --- a/src/data-structures/graph/README.md +++ b/src/data-structures/graph/README.md @@ -1,5 +1,10 @@ # Graph +In computer science, a graph is an abstract data type +that is meant to implement the undirected graph and +directed graph concepts from mathematics, specifically +the field of graph theory + A graph data structure consists of a finite (and possibly mutable) set of vertices or nodes or points, together with a set of unordered pairs of these vertices for an diff --git a/src/data-structures/hash-table/README.md b/src/data-structures/hash-table/README.md new file mode 100644 index 00000000..b26ba77b --- /dev/null +++ b/src/data-structures/hash-table/README.md @@ -0,0 +1,25 @@ +# Hash Table + +In computing, a hash table (hash map) is a data +structure which 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 into an array of buckets or slots, +from which the desired value can be found + +Ideally, the hash function will assign each key to a +unique bucket, but most hash table designs employ an +imperfect hash function, which might cause hash +collisions where the hash function generates the same +index for more than one key. Such collisions must be +accommodated in some way. + +![Hash Table](https://upload.wikimedia.org/wikipedia/commons/7/7d/Hash_table_3_1_1_0_1_0_0_SP.svg) + +Hash collision resolved by separate chaining. + +![Hash Collision](https://upload.wikimedia.org/wikipedia/commons/d/d0/Hash_table_5_0_1_1_1_1_1_LL.svg) + +## References + +[Wikipedia](https://en.wikipedia.org/wiki/Hash_table)