Learn the fundamentals of performance, memory usage, library design, and other core programming features by building basic data structure and collection classes from scratch. The demos are in Java, but the concepts can be applied to any language.
Data structures are used every day to hold and collect data. Often times pre-built data structures are used, such as Linked Lists and Maps, but you may never have built one from the ground up. In this course, Implementing and Understanding Data Structures in Java, you'll learn how to build many of the core data structures used in software development by utilizing the core Java programming language. First, you'll dive into learning about queues and stacks. Next, you'll explore lists and hashes in-depth. Finally, you'll finish off the course by discovering trees and how to utilize in practice. By the end of this course, you'll have a solid foundation on what each data structure is well-suited for, and what each data structure's performance access cost is.
Course Overview Hey, my name is Dan Bunker, and welcome to my course on Implementing and Understanding Data Structures in Java. I'm a software developer and consultant based in the Salk Lake City, Utah, area. Data Structures are used all the time in programming. No matter what kind of program you are writing, you'll be utilizing a data structure of some sort. Learning these structures inside and out will provide a strong programing foundation you can rely on for years to come. In this course, we're going to be building five different data structures from scratch using the Java programing language. Even though the examples are in Java, the concepts apply to other languages as well. The major data structures that we're going to cover include queues, stacks, lists, hashes, and trees. By the end of this course, you'll know the strengths and weaknesses of each of these data structures, the performance costs, and how to actually implement them. To get the most out of this course, some familiarity with Java and the Spring Tool Suite editor will help, since I use those in the coding demos. But they certainly aren't required since the concepts apply to most languages. I hope you'll join me on this journey to learn more about data structures and improve your programing knowledge with my course on Implementing and Understanding Data Structures in Java at Pluralsight.
Getting Started Hey, this is Dan Bunker with Pluralsight and this course is about building and understanding data structures using the Java programming language. You may be wondering why you'd want to build many of these core data structures used everyday programming when Java provides many of these data structures as part of the core Java SDK. I hope that this course answers this question and shows you why data structure knowledge is so important and how it builds a strong foundation for your programming skillset. Even though I'm going to show examples using Java, the information in this course is applicable for any programming language and can easily be transferred to that language's syntax. If you're in the need of a data structure refresher or you've never taken the time to study these structures from the ground up, then this is the course for you, so let's go ahead and get started.
Stacks Hey! This is Dan Bunker with Pluralsight and at this point you should have a basic understanding of what a data structure is and how performance is a key indicator of a data structure's strengths and weaknesses. In this module we begin our detailed study of data structures by building a stack. Stacks are used by most languages to store the code flow of function calls as the code executes. Even if you aren't familiar with the stack concept you have been using them just by using programming languages. Before we start coding the stack it will help to understand its attributes and its performance characteristics. So let's get started by going over the stack features and the performance costs.
Queues Hey, this is Dan Bunker of Pluralsight and in this module, we're going to be learning about Queues. Queues are pretty much exactly like stacks, but they differ on how data enters and leaves them. Queues are one of the more simplistic data structures out there, it's definitely worth learning, because many of the more complex data structures are built on top of the BasicQueue structure. In this module of the course, we are going to learn what makes a queue a queue, how it performs, what it's useful for and how to build one from scratch. Let's take a look at the queue characteristics and get started.
Lists Hey, this is Dan Bunker of Pluralsight and this module is all about lists. We've gone over stacks and queues now, and lists are the next logical step when learning data structures. Lists are like queues in the sense that they describe queue like line but how you get data in and out of a list differs and is not quite as strict as a queue. In this module, we'll be building a type of list called a link list. So get ready to learn as we continue on our data structure journey.
Hashes Hey, this is Dan Bunker with Pluralsight, and the data structure we'll be covering in this module is the hash. Hashes are often quite performant when retrieving, storing, finding and deleting data regardless of the hash's structure size. There's some unique gotchas with hashes though that we'll uncover when we start to code one up. The type of hash we'll be building in this module is a hash table. Before we get to that point though, let's talk about what a hash is and how it works.
Trees Hey, this is Dan Bunker with Pluralsight. For the final module in this course, we'll be covering tree data structures. Trees are often used to help sort and find data quickly, but inserting data and keeping the tree balanced tend to be problematic. In this module, we'll be building a binary tree data structure. I'll briefly cover generic tree characteristics, which will help give you a good foundation for all types of trees. If you've made it this far in this course, you should be feeling pretty strong with data structures overall. Finishing off your knowledge with trees will help to solidify your status as a data structure master, so let's get started.