Урок 1.00:01:14
Introduction
Урок 2.00:03:55
Why to use data structures
Урок 3.00:03:59
Data structures and abstract data types
Урок 4.00:05:56
Arrays introduction - basics
Урок 5.00:05:55
Arrays introduction - operations
Урок 6.00:09:53
Using arrays
Урок 7.00:08:44
ArraysLists in Java
Урок 8.00:03:07
Reversing an array in-place solution
Урок 9.00:03:52
Anagram problem solution
Урок 10.00:07:57
Duplicates in an array problem solution
Урок 11.00:06:21
Reservoir sampling solution
Урок 12.00:07:10
Linked lists theory - basics
Урок 13.00:09:33
Linked list theory - operations
Урок 14.00:01:41
Linked list theory - doubly linked lists
Урок 15.00:06:37
Linked list theory - linked lists versus arrays
Урок 16.00:04:48
Linked list implementation I
Урок 17.00:11:42
Linked list implementation II
Урок 18.00:07:56
Linked list implementation III
Урок 19.00:06:00
Doubly linked list introduction
Урок 20.00:08:15
Linked lists in java.util
Урок 21.00:05:18
Practical (real-world) applications of linked lists
Урок 22.00:05:31
Finding the middle node in a linked list solution
Урок 23.00:07:34
Reverse a linked list in-place solution
Урок 24.00:04:02
Stack introduction
Урок 25.00:07:24
Stacks in memory management ( stacks, heaps )
Урок 26.00:07:03
Stacks and recursive method calls
Урок 27.00:07:29
Stack implementation with linked list I
Урок 28.00:03:39
Stack implementation with linked list II
Урок 29.00:11:03
Stack implementation with arrays
Урок 30.00:01:19
Dijkstra's interpreter introduction
Урок 31.00:09:13
Dijkstra's interpreter implementation
Урок 32.00:05:11
Java built in java.util.Stack
Урок 33.00:03:21
Practical (real-world) applications of stacks
Урок 34.00:05:14
Queues introduction
Урок 35.00:09:44
Queue implementation with linked list
Урок 36.00:06:33
Java built in java.util.Queue
Урок 37.00:05:50
Max in a stack problem solution
Урок 38.00:05:50
Stack with queue solution
Урок 39.00:04:54
Stack with queue solution - recursion
Урок 40.00:10:25
Binary search trees theory - basics
Урок 41.00:04:27
Binary search trees theory - search, insert
Урок 42.00:06:09
Binary search trees theory - delete
Урок 43.00:04:26
Binary search trees theory - in-order traversal
Урок 44.00:02:12
Binary search trees theory - running times
Урок 45.00:07:03
Binary search trees implementation I - Node, Tree
Урок 46.00:09:56
Binary search trees implementation II - insertion
Урок 47.00:07:25
Binary search tree implementation III - maximum, minimum
Урок 48.00:05:43
Binary search tree implementation IV - traversal
Урок 49.00:09:26
Binary search tree implementation V - remove
Урок 50.00:05:55
Binary search tree implementation VI - remove II
Урок 51.00:06:45
Custom objects in a tree
Урок 52.00:03:07
Practical (real-world) applications of trees
Урок 53.00:05:16
Compare binary trees solution
Урок 54.00:11:31
k-th smallest element in a search tree solution
Урок 55.00:09:48
Family age problem solution
Урок 56.00:04:14
AVL trees introduction - motivation
Урок 57.00:05:22
AVL trees introduction - basics
Урок 58.00:08:45
AVL trees introduction - height
Урок 59.00:10:18
AVL trees introduction - rotations cases
Урок 60.00:10:51
AVL trees introduction - illustration
Урок 61.00:03:39
AVL trees introduction - sorting
Урок 62.00:03:22
AVL implementation - Node and Tree
Урок 63.00:04:46
AVL implementation - balance and height parameters
Урок 64.00:07:37
AVL implementation - implementing the rotations
Урок 65.00:06:04
AVL implementation - insertion I
Урок 66.00:08:53
AVL implementation - insertion II
Урок 67.00:03:20
AVL implementation - testing
Урок 68.00:06:36
AVL tree remove introduction
Урок 69.00:08:32
AVL tree remove implementation I
Урок 70.00:03:56
AVL tree generic implementation
Урок 71.00:10:39
Red-black trees introduction - basics
Урок 72.00:04:16
The logic behind red-black trees
Урок 73.00:05:11
Red-black trees rotations- cases I
Урок 74.00:04:26
Red-black trees rotations- cases II
Урок 75.00:03:18
Red-black trees rotations- cases III
Урок 76.00:02:47
Red-black trees rotations- cases IV
Урок 77.00:04:48
Red-black trees introduction - example I
Урок 78.00:04:20
Red-black trees introduction - example II
Урок 79.00:03:26
Red-black tree versus AVL tree
Урок 80.00:04:29
Red-black tree implementation I - Node class
Урок 81.00:02:07
Red-black tree implementation II - traverse
Урок 82.00:03:41
Red-black tree implementation III - insert
Урок 83.00:05:49
Red-black tree implementation IV - rotate left / right
Урок 84.00:09:53
Red-black tree implementation V - fixing the violations
Урок 85.00:05:54
Red-black tree implementation VI - fixing the violations
Урок 86.00:02:01
Red-black tree implementation VII - testing
Урок 87.00:12:50
Splay tree introduction I - basics
Урок 88.00:03:53
Splay tree introduction II - example
Урок 89.00:09:45
Splay tree implementation I - find, rotate
Урок 90.00:05:51
Splay tree implementation II - splaying
Урок 91.00:03:36
Splay tree implementation III - testing
Урок 92.00:13:02
B-tree introduction - basics
Урок 93.00:04:08
B-tree and external memory
Урок 94.00:05:42
Disk access times
Урок 95.00:02:48
B-tree introduction - search
Урок 96.00:07:11
B-tree introduction - insertion
Урок 97.00:05:32
B-tree introduction - deletion
Урок 98.00:04:07
In-order traversal
Урок 99.00:08:14
Priority queues introduction
Урок 100.00:08:15
Heap introduction - basics
Урок 101.00:09:18
Heap introduction - array representation
Урок 102.00:04:44
Heap introduction - remove operation
Урок 103.00:05:14
Heap introduction - heapsort
Урок 104.00:05:06
Heap introduction - running times
Урок 105.00:03:00
Other types of heaps: binomial and Fibonacci heap
Урок 106.00:08:29
Heap implementation I
Урок 107.00:06:39
Heap implementation II
Урок 108.00:05:01
Heap implementation III
Урок 109.00:08:34
Heaps in java.util.PriorityQueue
Урок 110.00:06:43
Checking array heap representation solution
Урок 111.00:06:42
Converting max heap to min heap solution
Урок 112.00:02:38
Associative array ADT
Урок 113.00:09:06
Hashtables introduction - basics
Урок 114.00:07:01
Hashtables introduction - collisions
Урок 115.00:06:04
Hashtables introduction - load factor & dynamic resizing
Урок 116.00:04:06
Chaining method summary
Урок 117.00:09:17
Chaining implementation I - put
Урок 118.00:04:29
Chaining implementation II - get
Урок 119.00:08:01
Chaining implementation III - testing
Урок 120.00:04:00
Linear probing summary
Урок 121.00:05:34
Linear probing implementation I - put
Урок 122.00:02:59
Linear probing implementation II - get
Урок 123.00:04:45
Linear probing implementation III - testing
Урок 124.00:06:46
Generic linear probing implementation I - basics
Урок 125.00:04:15
Generic linear probing implementation II - get
Урок 126.00:05:36
Generic linear probing implementation III - put
Урок 127.00:06:28
Generic linear probing implementation IV - remove
Урок 128.00:05:31
Generic linear probing implementation V - resize
Урок 129.00:02:40
Generic linear probing implementation VI - testing
Урок 130.00:02:06
Generic linear probing implementation - hashCode
Урок 131.00:05:53
Maps in Java Collections
Урок 132.00:06:32
Practical (real-world) applications of hashing
Урок 133.00:07:30
Two sum problem solution
Урок 134.00:03:27
Why to use cache?
Урок 135.00:08:07
LRU cache introduction
Урок 136.00:04:23
LRU cache implementation I
Урок 137.00:11:19
LRU cache implementation II
Урок 138.00:11:58
Fenwick trees theory I - basics
Урок 139.00:04:43
Fenwick trees theory II - tree structure
Урок 140.00:08:03
Fenwick trees theory III - update
Урок 141.00:05:12
Fenwick trees implementation