Resources about various algorithms - Higher Level:
- http://www.algolist.net/Algorithms/ - various algorithms (sort, binary search) and programming concepts (recursion) explained
- From this link, be sure to revise the sequential and binary searches, plus the chapters on sorting algorithms and recursion (code examples are on Python, which means it's close to pseudocode, but you can run it if you have the Python 3 interpreter)
- http://introcs.cs.princeton.edu/java/40algorithms/ - an excellent chapter on Algorithms and Data Structures; there was a performance question in a recent past paper, so it may be a good idea to read 4.1 (performance) as well. Don't obsess over Tilde notation and skip memory usage as well. Our focus is to be aware of how some algorithms are more efficient than others (as you can see by their classification into their order of growth: constant, logarithmic, linear, quadratic, cubic, exponential, etc.) Stacks and Queues
Binary Search Trees
Resources about Abstract Data Types:
- http://www.webopedia.com/TERM/A/abstract-data-type.html
- http://www.csanimated.com/animation.php?t=Abstract_data_type
- http://www.csanimated.com/animation.php?t=Stack
- http://www.csanimated.com/animation.php?t=Queue
- http://www.csanimated.com/animation.php?t=Linked_list
- http://visualgo.net/en/list.html - animated ADTs (linked list implementations)
- Chapter on Linked Lists, from the same site as #2 in the previous list of links ;-)
- http://www.algolist.net/Data_structures/ - well explained and clear diagrams
- HackerRank's algorithms YoutTube playlist
- HackerRank's data structures YoutTube playlist
-
mycodeschool's YouTube playlist on data structures. Examples are in C/C++, but their explanations and diagrams are great!