This course introduces some basic data structures (arrays, linked lists, stacks, queues, trees and heaps) and algorithms (various sorting algorithms, and algorithms for operations on binary search trees and heaps). We will also cover recursion in this course. Use of graphics and animations makes the lectures very easy to understand and digest. After taking this course, you will loose your fear for data structures and algorithms.Who is the target audience?
One of the problems that people face in writing algorithms is how to translate their thoughts into a programming language. Many people cannot even start writing the very first statement of an algorithm. I suggest that if you are having such trouble, don't try to solve the whole problem together, rather break it down into smaller, easier parts. For e.g. try doing the following in writing code for the selection sort algorithm -
Hopefully, by this time you will have enough clarity on completing the sorting algorithm, if you understood the pseudo code.Selection Sort : Pseudocode 02:34 Introduction to Insertion Sort 01:56 Applying Insertion Sort algorithm to cue balls 02:08 Insertion Sort: Pseudocode 02:38 O(n²) sorting algorithms - Comparison 02:00 In place sorting 00:54 Stable Vs Unstable Sorts 03:46 Searching elements in an un ordered array 03:16 Searching elements in an ORDERED array 02:33 Searching elements in an ORDERED array - contd. 05:48 Inserting and Deleting items in an ORDERED array 02:08
Try to write generic sort methods, like shown in the InsertionSortWithGenerics.java, for Bubble sort and Selection sort algorithms as an exercise. But if you don't want to get into generics at this point, you may choose to skip this section.Sorting any type of object 01:33 Chapter Quiz 6 questions Assignment 00:46 + – Linked Lists 12 Lectures 44:05 What is a Linked List? 03:21 Implementing a Linked List in Java 00:56 Inserting a new Node 05:25 Length of a Linked List 02:11 Deleting the head node 02:11 Searching for an Item 03:11 Using java generics to parameterize the LinkedList 01:21 Doubly Ended Lists 03:05 Inserting data in a sorted Linked List 04:38 Doubly Linked List 06:28 Insertion Sort revisited 10:32 Chapter Quiz 4 questions Assignment 00:45 + – Stacks and Queues 8 Lectures 21:47 Stacks 02:41 Abstract Data Types 00:37 Implementing Stacks using Arrays 03:21 Queues 02:32 Queues using Arrays 05:29 Double Ended Queues 01:58 Double Ended Queues using Arrays 04:20 Chapter Quiz 7 questions Assignment 00:49 + – Recursion 10 Lectures 38:17 Introduction 04:33 Understanding Recursion 03:04 Tail recursion 02:48 Tower of Hanoi 08:25 Tower of Hanoi - Implementation 02:58 Merge Sort 04:09 Merge Sort - Pseudocode 04:24 Merge Step - Pseudocode 04:32 Time Complexity of Merge Sort 02:52 Chapter Quiz 6 questions Assignment 00:32 + – Binary Search Trees 18 Lectures 47:52 The Tree Data structure 03:41 Binary Trees 03:34 Binary Search Trees 02:01 Finding an item in a Binary Search Tree