Created
September 13, 2020 07:44
Revisions
-
asukakenji created this gist
Sep 13, 2020 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,621 @@ # Data Structures and Algorithms Reading List ## Abstract Data Types / ADTs Wikipedia: [Abstract data type - Wikipedia][adt] Textbooks: [adt]: https://en.wikipedia.org/wiki/Abstract_data_type ### List / Vector Wikipedia: [List (abstract data type) - Wikipedia][list] Textbooks: [list]: https://en.wikipedia.org/wiki/List_(abstract_data_type) ### Stack Wikipedia: [Stack (abstract data type) - Wikipedia][stack] Textbooks: [stack]: https://en.wikipedia.org/wiki/Stack_(abstract_data_type) ### Queue Wikipedia: [Queue (abstract data type) - Wikipedia][queue] Textbooks: [queue]: https://en.wikipedia.org/wiki/Queue_(abstract_data_type) ### Double-Ended Queue / Deque Wikipedia: [Double-ended queue - Wikipedia][deque] Textbooks: [deque]: https://en.wikipedia.org/wiki/Double-ended_queue ### Priority Queue Wikipedia: [Priority queue - Wikipedia][priorityqueue] Textbooks: [priorityqueue]: https://en.wikipedia.org/wiki/Priority_queue ### Double-Ended Priority Queue / DEPQ Wikipedia: [Double-ended priority queue - Wikipedia][depq] Textbooks: [depq]: https://en.wikipedia.org/wiki/Double-ended_priority_queue ### Set Wikipedia: [Set (abstract data type) - Wikipedia][set] Textbooks: [set]: https://en.wikipedia.org/wiki/Set_(abstract_data_type) ### Multiset Wikipedia: [Set (abstract data type) - Wikipedia > Multiset][multiset] Textbooks: [multiset]: https://en.wikipedia.org/wiki/Set_(abstract_data_type)#Multiset ### Disjoint-Set Wikipedia: [Disjoint-set data structure - Wikipedia][disjointset] Textbooks: [disjointset]: https://en.wikipedia.org/wiki/Disjoint-set_data_structure ### Map / Dictionary / Associative Array Wikipedia: [Associative array - Wikipedia][map] Textbooks: [map]: https://en.wikipedia.org/wiki/Associative_array ### Multimap Wikipedia: [Multimap - Wikipedia][multimap] Textbooks: [multimap]: https://en.wikipedia.org/wiki/Multimap --- ## Data Structures Wikipedia: [Data structure - Wikipedia][datastructure] Textbooks: [datastructure]: https://en.wikipedia.org/wiki/Data_structure ### Array Wikipedia: [Array data structure - Wikipedia][array] Textbooks: [array]: https://en.wikipedia.org/wiki/Array_data_structure #### Array List / Dynamic Array Wikipedia: [Dynamic array - Wikipedia][dynamicarray] Textbooks: [dynamicarray]: https://en.wikipedia.org/wiki/Dynamic_array #### Hash Table Wikipedia: [Hash table - Wikipedia][hashtable] Textbooks: [hashtable]: https://en.wikipedia.org/wiki/Hash_table ### Linked List Wikipedia: [Linked list - Wikipedia][linkedlist] Textbooks: [linkedlist]: https://en.wikipedia.org/wiki/Linked_list #### Singly-Linked List Wikipedia: [Linked list - Wikipedia > Singly linked list][singlylinkedlist] Textbooks: [singlylinkedlist]: https://en.wikipedia.org/wiki/Linked_list#Singly_linked_list #### Doubly-Linked List Wikipedia: [Linked list - Wikipedia > Doubly linked list][doublylinkedlist] Textbooks: [doublylinkedlist]: https://en.wikipedia.org/wiki/Linked_list#Doubly_linked_list #### Circular Linked List Wikipedia: [Linked list - Wikipedia > Circular linked list][circularlinkedlist] Textbooks: [circularlinkedlist]: https://en.wikipedia.org/wiki/Linked_list#Circular_linked_list #### Skip List Wikipedia: [Skip list - Wikipedia][skiplist] Textbooks: [skiplist]: https://en.wikipedia.org/wiki/Skip_list #### Deterministic Skip List Textbooks: ### Tree Wikipedia: [Tree (data structure) - Wikipedia][tree] Textbooks: [tree]: https://en.wikipedia.org/wiki/Tree_(data_structure) #### Merkle Tree / Hash Tree (1979) Wikipedia: [Merkle tree - Wikipedia][merkletree] Textbooks: [merkletree]: https://en.wikipedia.org/wiki/Merkle_tree #### Fenwick Tree / Binary Indexed Tree (1989, 1992, 1994) Wikipedia: [Fenwick tree - Wikipedia][fenwicktree] Textbooks: [fenwicktree]: https://en.wikipedia.org/wiki/Fenwick_tree ### Tree > Heap (1964) Wikipedia: [Heap (data structure) - Wikipedia][heap] Textbooks: [heap]: https://en.wikipedia.org/wiki/Heap_(data_structure) #### Binary Heap (1964) Wikipedia: [Binary heap - Wikipedia][binaryheap] Textbooks: [binaryheap]: https://en.wikipedia.org/wiki/Binary_heap #### d-Heap / d-ary Heap (1975) Wikipedia: [d-ary heap - Wikipedia][dheap] Textbooks: [dheap]: https://en.wikipedia.org/wiki/D-ary_heap #### Leftist Heap / Leftist Tree (1972) Wikipedia: [Leftist tree - Wikipedia][leftistheap] Textbooks: [leftistheap]: https://en.wikipedia.org/wiki/Leftist_tree #### Skew Heap / Self-Adjusting Heap (1986) Wikipedia: [Skew heap - Wikipedia][skewheap] Textbooks: [skewheap]: https://en.wikipedia.org/wiki/Skew_heap #### Binomial Heap / Binomial Queue (1978) Wikipedia: [Binomial heap - Wikipedia][binomialheap] Textbooks: [binomialheap]: https://en.wikipedia.org/wiki/Binomial_heap #### Fibonacci Heap (1984) Wikipedia: [Fibonacci heap - Wikipedia][fibonacciheap] Textbooks: [fibonacciheap]: https://en.wikipedia.org/wiki/Fibonacci_heap #### Pairing Heap (1986) Wikipedia: [Pairing heap - Wikipedia][pairingheap] Textbooks: [pairingheap]: https://en.wikipedia.org/wiki/Pairing_heap #### Interval Heap Wikipedia: [Double-ended priority queue - Wikipedia > Interval heaps][intervalheap] Textbooks: [intervalheap]: https://en.wikipedia.org/wiki/Double-ended_priority_queue#Interval_heaps #### Twin Heap Wikipedia: [Double-ended priority queue - Wikipedia > Total correspondence][twinheap] Textbooks: [twinheap]: https://en.wikipedia.org/wiki/Double-ended_priority_queue#Total_correspondence #### Min-Max Heap Wikipedia: [Min-max heap - Wikipedia][minmaxheap] Textbooks: [minmaxheap]: https://en.wikipedia.org/wiki/Min-max_heap #### Deap Textbooks: #### Diamond Deque Textbooks: #### van Emde Boas Tree / vEB Tree (1975) Wikipedia: [Van Emde Boas tree - Wikipedia][vbetree] Textbook: [vbetree]: https://en.wikipedia.org/wiki/Van_Emde_Boas_tree ### Tree > Search Tree > Binary Search Tree / BST (1960) Wikipedia: [Binary search tree - Wikipedia][bst] Textbooks: [bst]: https://en.wikipedia.org/wiki/Binary_search_tree #### AVL Tree (1962) Wikipedia: [AVL tree - Wikipedia][avltree] Textbooks: [avltree]: https://en.wikipedia.org/wiki/AVL_tree #### Red-Black Tree (1972) Wikipedia: [Red–black tree - Wikipedia][redblacktree] Textbooks: [redblacktree]: https://en.wikipedia.org/wiki/Red%E2%80%93black_tree **Left-Leaning Red-Black Tree / LLRB Tree (2008)** Wikipedia: [Left-leaning red–black tree - Wikipedia][llrbtree] Textbooks: [llrbtree]: https://en.wikipedia.org/wiki/Left-leaning_red%E2%80%93black_tree #### Splay Tree (1985) Wikipedia: [Splay tree - Wikipedia][splaytree] Textbooks: [splaytree]: https://en.wikipedia.org/wiki/Splay_tree #### Scapegoat Tree (1993) Wikipedia: [Scapegoat tree - Wikipedia][scapegoattree] Textbooks: [scapegoattree]: https://en.wikipedia.org/wiki/Scapegoat_tree #### AA Tree Wikipedia: [AA tree - Wikipedia][aatree] Textbooks: [aatree]: https://en.wikipedia.org/wiki/AA_tree #### Treap (TRee + hEAP) (1989) Wikipedia: [Treap - Wikipedia][treap] Textbooks: [treap]: https://en.wikipedia.org/wiki/Treap ### Tree > Search Tree > B-Tree Family #### 2-3 Tree Wikipedia: [2–3 tree - Wikipedia][23tree] Textbooks: [23tree]: https://en.wikipedia.org/wiki/2%E2%80%933_tree #### 2-3-4 Tree / 2-4 Tree Wikipedia: [2–3–4 tree - Wikipedia][234tree] Textbooks: [234tree]: https://en.wikipedia.org/wiki/2%E2%80%933%E2%80%934_tree #### B-Tree Wikipedia: [B-tree - Wikipedia][btree] Textbooks: [btree]: https://en.wikipedia.org/wiki/B-tree #### B+ Tree Wikipedia: [B+ tree - Wikipedia][b+tree] Textbooks: [b+tree]: https://en.wikipedia.org/wiki/B%2B_tree #### B<sup>*</sup> Tree Wikipedia: [B-tree - Wikipedia > Variants][b*tree] Textbooks: [b*tree]: https://en.wikipedia.org/wiki/B-tree#Variants #### B<sup>x</sup> Tree Wikipedia: [Bx-tree - Wikipedia][bxtree] Textbooks: [bxtree]: https://en.wikipedia.org/wiki/Bx-tree #### UB-Tree Wikipedia: [UB-tree - Wikipedia][ubtree] Textbooks: [ubtree]: https://en.wikipedia.org/wiki/UB-tree #### (a,b)-Tree Wikipedia: [(a,b)-tree - Wikipedia][abtree] Textbooks: [abtree]: https://en.wikipedia.org/wiki/(a,b)-tree #### Dancing Tree Wikipedia: [Dancing tree - Wikipedia][dancingtree] Textbooks: [dancingtree]: https://en.wikipedia.org/wiki/Dancing_tree #### HTree Wikipedia: [HTree - Wikipedia][htree] Textbooks: [htree]: https://en.wikipedia.org/wiki/HTree ### Tree > Search Tree > k-d Tree Family #### k-d Tree Wikipedia: [k-d tree - Wikipedia][kdtree] Textbooks: [kdtree]: https://en.wikipedia.org/wiki/K-d_tree #### Implicit k-d Tree Wikipedia: [Implicit k-d tree - Wikipedia][implicitkdtree] Textbooks: [implicitkdtree]: https://en.wikipedia.org/wiki/Implicit_k-d_tree #### min/max k-d Tree Wikipedia: [min/max kd-tree - Wikipedia][minmaxkdtree] Textbooks: [minmaxkdtree]: https://en.wikipedia.org/wiki/Min/max_kd-tree #### Quadtree Wikipedia: [Quadtree - Wikipedia][quadtree] Textbooks: [quadtree]: https://en.wikipedia.org/wiki/Quadtree **Region Quadtree** Wikipedia: [Quadtree - Wikipedia > Region quadtree][regionquadtree] Textbooks: [regionquadtree]: https://en.wikipedia.org/wiki/Quadtree#Region_quadtree **Point Quadtree** Wikipedia: [Quadtree - Wikipedia > Point quadtree][pointquadtree] Textbooks: [pointquadtree]: https://en.wikipedia.org/wiki/Quadtree#Point_quadtree **Point Region Quadtree / PR Quadtree** Wikipedia: [Quadtree - Wikipedia > Point-region (PR) quadtree][prquadtree] Textbooks: [prquadtree]: https://en.wikipedia.org/wiki/Quadtree#Point-region_(PR)_quadtree **Edge Quadtree** Wikipedia: [Quadtree - Wikipedia > Edge quadtree][edgequadtree] Textbooks: [edgequadtree]: https://en.wikipedia.org/wiki/Quadtree#Edge_quadtree **Polygonal Map Quadtree / PM Quadtree** Wikipedia: [Quadtree - Wikipedia > Polygonal map (PM) quadtree][pmquadtree] Textbooks: [pmquadtree]: https://en.wikipedia.org/wiki/Quadtree#Polygonal_map_(PM)_quadtree #### Octtree Wikipedia: [Octree - Wikipedia][octtree] Textbooks: [octtree]: https://en.wikipedia.org/wiki/Octree #### R-Tree Wikipedia: [R-tree - Wikipedia][rtree] Textbooks: [rtree]: https://en.wikipedia.org/wiki/R-tree #### G-Tree Textbooks: ### Tree > Trie (1959) Wikipedia: [Trie - Wikipedia][trie] Textbooks: [trie]: https://en.wikipedia.org/wiki/Trie #### Suffix Tree Wikipedia: [Suffix tree - Wikipedia][suffixtree] Textbooks: [suffixtree]: https://en.wikipedia.org/wiki/Suffix_tree #### Radix Tree Wikipedia: [Radix tree - Wikipedia][radixtree] Textbooks: [radixtree]: https://en.wikipedia.org/wiki/Radix_tree #### Hash Trie / Hash Tree Wikipedia: [Hash tree (persistent data structure) - Wikipedia][hashtrie] Textbooks: [hashtrie]: https://en.wikipedia.org/wiki/Hash_tree_(persistent_data_structure) #### X-Fast Trie Wikipedia: [X-fast trie - Wikipedia][xfasttrie] Textbooks: [xfasttrie]: https://en.wikipedia.org/wiki/X-fast_trie #### Y-Fast Trie Wikipedia: [Y-fast trie - Wikipedia][yfasttrie] Textbooks: [yfasttrie]: https://en.wikipedia.org/wiki/Y-fast_trie