Data Structures and Algorithms: Deep Dive Using Java
-
IntroductionCourse Introduction and Updates by Tim Buchalka0sData Structures and Algorithms: Course Overview0sJDK 8 Installation Guide for Windows Users0sJDK 8 Installation Guide for macOS Users0sJDK 8 Installation Guide for Linux (Ubuntu)0sIntellij IDEA Installation Guide for Windows0sIntelliJ IDEA Installation Guide for macOS0sIntelliJ IDEA Installation Guide for Linux (Ubuntu)0sUnderstanding Data Structures: An Introduction0sUnderstanding Algorithms: An Introduction0s
-
Arrays and Big-O Notation
-
Sort Algorithms Deep DiveIntroduction to Sorting Algorithms0sBubble Sort Explained: Theory and In-Place Sorting0sBubble Sort Implementation in Java: Step-by-Step Guide0sStable vs. Unstable Sorting Algorithms Explained0sSelection Sort: In-Place Sorting Algorithm Explained0sSelection Sort Implementation in Java: A Practical Guide0sInsertion Sort: Theory and Step-by-Step Explanation0sInsertion Sort: Theory and Step-by-Step Explanation0sShell Sort: An Efficient Sorting Algorithm Explained0sShell Sort Implementation in Java: A Step-by-Step GuideRecursion Explained: A Deep Dive into Recursive Methods0sMerge Sort: Divide and Conquer Sorting Algorithm Explained0sMerge Sort Implementation in Java: A Practical Guide0sQuick Sort: Divide and Conquer Sorting Algorithm0sQuick Sort Implementation in Java: A Practical Guide0sCounting Sort: Linear Time Sorting Algorithm Explained0sCounting Sort Implementation in Java: A Step-by-Step Guide0sRadix Sort: Sorting Algorithm for Fixed Width Data0sStable Counting Sort: Theory and Implementation0sRadix Sort Implementation in Java: A Practical Guide0sSorting Arrays in Java: Using the Arrays Class0sMerge Sort Challenge: Descending Order Sorting0sMerge Sort Challenge Solution: Descending Order0sInsertion Sort Challenge: Recursive Implementation0sInsertion Sort Challenge Solution: Recursive Implementation0sRadix Sort Challenge: String Sorting Implementation0sRadix Sort Challenge Solution: String Sorting0s
-
Mastering Lists in Java: Implementations and ApplicationsIntroduction to Lists in Java: Exploring the java.util.List Interface0sUnderstanding Abstract Data Types (ADTs): Definitions and Core Concepts0sDeep Dive into ArrayLists: Capacity, Size, and Dynamic Array Implementation0sVectors in Java: Thread-Safe Operations and Synchronization vs. ArrayList0sSingly Linked Lists: Conceptual Overview and Node-Based Data Organization0sImplementing a Singly Linked List in Java: Node Creation and List Operations0sDoubly Linked Lists: Theory, Bidirectional Traversal, and Node Relationships0sImplementing a Doubly Linked List in Java: Enhancing Node Connections0sJDK LinkedList Class: Exploring Java’s Built-in Doubly Linked List Features0sLinked Lists Coding Challenge 1: Adding Before a Node in a Linked List0sLinked List Challenge 1 Solution Implementing Add Before in a Doubly Linked List0sLinked Lists Coding Challenge 2: Sorted Insertion into a Singly Linked List0sLinked List Challenge 2 Solution: Maintaining Sorted Order0s
-
Stack Data Structures: Implementation and Use CasesIntroduction to Stacks: Fundamental Concepts and Applications0sStack Operations and Principles: Understanding LIFO (Last-In, First-Out)0sImplementing Stacks with Arrays: Array-Backed Stack Data Structures0sUsing JDK’s LinkedList for Stacks: Leveraging Built-in Java Functionality0sStack Challenge: Develop a Palindrome Checker Using Stack Operations0sPalindrome Checker Using Stacks: A Step-by-Step Solution and Code Walkthrough0s
-
Mastering Queue Data Structures: Implementation and Applications in JavaQueue Data Structures: Introduction and Core Concepts for Beginners in Java0sQueue Fundamentals: FIFO Operations, Theory, and Time Complexity Analysis0sImplementing Queues with Arrays: A Practical Java Coding Guide with Resizing0sEnhancing Queues with Circular Arrays: Optimizing Space and Efficiency – Part 1Advanced Circular Queue Implementation: Resizing, Unwrapping, and Optimization0sExploring Queue and Deque Interfaces in the Java Development Kit (JDK)0sCoding Challenge: Test Palindrome Recognition Skills Using a Queue and a Stack0sPalindrome Checker: Solution Using Stack and Queue in Java Detailed Walkthrough0s
-
Hash Tables: Mastering Key-Value Data Structures for Efficient Data RetrievalIntroduction to Hash Tables: Key-Value Pairs, and Advantages in Data Access0sHash Table Fundamentals: Hashing, Keys, Values, Load Factor and Collisions0sImplementing Hash Tables with Arrays: A Practical Java Coding Guide0sCollision Resolution in Hash Tables with Linear Probing and Rehasing Techniques0sImplementing the Remove Method when Using Linear Probing in Hash Tables0sRehashing After Removing with Linear Probing for Improved Hash Table Performance0sHandling Hash Table Collisions with Chaining: A Linked List Approach0sExploring HashMap, Hashtable, and LinkedHashMap in the Java Development Kit0sBucket Sort Algorithm Explained: Understanding the Theory and Implementation0sImplementing the Bucket Sort Algorithm in Java: A Step-by-Step Code Example0sHashtables Challenge #1: Develop a Hashing Function for Integer Array Mapping0sHashing Function Challenge Solution: Creating an Integer to Array Index Mapper0sHashtables Challenge #2: Removing Duplicates from a LinkedList Using a HashMap0sHash Table Challenge #2 Solution: Eliminate Duplicates in a LinkedList Expertly0s
-
Optimized Search Algorithms in Java: Linear and Binary Search
-
Mastering Tree Data Structures: Implementation and Optimization in JavaA Comprehensive Introduction to Tree Data Structures in Java0sFundamental Theory and Terminology of Tree Data Structures in Java0sDeep Dive into Binary Search Trees: Characteristics and Theory0sImplementing Insertion Operations in Binary Search Trees with Java0sMastering Tree Traversal Techniques: In-Order, Pre-Order and Post-Order0sImplementing Get, Min, and Max Operations on Binary Search Trees0sBinary Search Tree Deletion: Handling Cases with Zero or One Child0sImplementing Node Deletion in Binary Search Trees: Zero and One Child0sMastering Binary Search Tree Deletion: Handling Nodes with Two Children0sImplementing Deletion of Nodes with Two Children in Binary Search Trees0sExploring Tree-Related Classes and Structures within the Java JDK0sChallenge Exercise: Implementing Pre-Order Traversal in Binary Trees0sSolution and Explanation for Pre-Order Traversal in Binary Trees0sHands-On Practice: Insertion and Deletion Operations in Binary Trees0s
-
Mastering Heaps: Priority Queues and Heapsort Algorithm in JavaComprehensive Introduction to Heap Data Structures in Java0sUnderstanding the Underlying Theory and Properties of Heaps0sEfficiently Storing and Representing Heaps as Arrays in Java0sImplementing Insertion Operations in Max-Heaps Using Java0sTheory and Concepts of Deletion Operations in Heap Data Structures0sImplementing Deletion in Heaps: Handling All Cases with Java Code0sImplementing the Peek Operation for Efficient Heap Data Access0sPriority Queues: Understanding and Utilizing Heap-Based Implementations0sHeapsort Algorithm Explained: In-Place Sorting with Max-Heaps (Theory)0sImplementing the Heapsort Algorithm in Java: A Step-by-Step Guide0s
-
Final Section: Concluding the Course with Key Takeaways and Sets
-
Extra Information – Source code, and other stuff
So you’ve worked with the basics of data structures and algorithms in Java (or another OO programming language) but feel like you need a deeper knowledge of how things work.
Maybe you have taken other courses on this topic that focus more on teaching how to pass job interview tests (theory) instead of how to make good choices for the programs you develop (implementation).
Or maybe you are ready to move from a junior programming position to a more senior one and need to get skilled in advanced concepts like data structures, and how to apply them to your own projects.
Whatever the reason, if you are looking for a course that focus on the implementations to give you a complete understanding of how things work, then this is the course for you.
This course goes over the theory of how things work, but only to give you what you need to know to understand the implementation covered.
Complete source code is included and available for you to download.
This is a hands-on course! If you want to try understand things at a deep level, and work on implementations, rather than theory, then again, this is the course for you.
Topics covered:-
Arrays
Linked Lists
Trees
Hashtables
Stacks
Queues
Heaps
Sort algorithms
Search algorithms
The course also spends more time than most other courses of its kind looking at what’s available in the JDK. Students wanting to understand how things work “under the hood” will benefit enormously from this course.
Why learn about data structures and algorithms?
The reality is, the more you learn about data structures and algorithms, the better a programmer you become.
Why?
Because, data structures and algorithms are effectively patterns for solving problems. You want to add as many of them as you can to your skill-set. By doing so, you will find you solve more problems, and use the right tools for the job, in a more elegant way. And you will learn a heap of them in this course.
Why enrolling in this course is the best decision you can make.
Your instructor, Sarah Ettritch has over 25 years’ software development experience and has been working with Java since JDK 1.1. She has spent many years creating tools used by developers, which required a deep knowledge of data structures and algorithms, and is perfectly qualified to teach this course.
Most courses focus on giving you the theory of how things work, so that you can take an interview. Whilst the theory is important, the knowledge of how to implement these data structures and algorithms are of vital importance.
This course goes over the theory of how things work, but only to give you what you need to know to understand the implementation covered. The main focus of the course is to give you a real understanding of how things work under the hood, so that you can apply this to future programming projects.
If you want to actually understand how things work, and be able to take that understanding and apply it to your own programs, then this course is for you.
After completing this course, you will have a solid understanding of data structures and algorithms (both the theory, and the implementation).
The sooner you sign up for this course, the sooner you will have the skills and knowledge you need to increase your job or consulting opportunities. Java developers with key skills and understanding of data structures and algorithms are in high demand and get paid extremely well.
If you are ready for that new job promotion or consulting opportunity, it’s time to get started.
Why not get started today?
Click the Signup button to sign up for the course
What's included
- 16 hours on-demand video
- 4 articles
- 3 downloadable resources
- Access on mobile and TV
- Certificate of completion