Description:

In this course, you’ll explore a popular data structure, the queue. Queues offer first in, first out access. All additions to the queue are done at one end, which is the rear of the queue, and removals from the queue are done from the front of the queue. You'll learn how to implement a queue using arrays and linked lists and you’ll also examine a related data structure, the deque - basically the queue with additional operations. Next, you'll learn about implementations of the stack and queue, which are part of the standard Java library. Finally, you'll see how you can work with the priority queue, which allows you to access elements in the order of priority.

Target Audience:

Duration: 01:50

Description:

The stack in Java allows us to access data in a last in, first out manner and in the best case scenario, both of these operations are performed in constant time. In this course, you'll get started by examining the behavior and characteristics of the stack data structure. The stack is often referred to as LIFO - or last in, first out - since the last element that you push on to a stack is the first element that you access. You'll learn how you can implement the stack data structure using arrays and linked lists and how to assess the trade-offs between these two implementations. Lastly, you'll see how to write code to perform common operations on a stack such as push(), pop(), and peek() and how to assess the running time for each of these operations.

Target Audience:

Duration: 01:29

Description:

Discover how to implement the linked list in Java, including the doubly linked list and the circular linked list, and learn how to perform operations on these linked lists. In this course, you’ll explore variations on the singly linked list that you covered earlier. You’ll see how the doubly linked list holds an additional reference to the previous node in the linked list along with a reference to the next node. This means additional space is required to store each node, but it also makes certain operations faster, such as traversing backwards over the elements in the linked list. You'll also learn about the circular linked list, where the tail of the linked list points back to the head of the linked list.

Target Audience:

Duration: 00:42

Description:

In Java, a linked list is a sequence of nodes, each node is linked to the previous and next node in the sequence. In this course, you'll learn how to implement the singly linked list and write code to perform a range of operations on the linked list. First, you'll gain a conceptual understanding of how a node in a singly linked list allows you to connect to all other nodes using the Next reference. Then you'll move on to examine how to perform common operations on this linked list, such as inserting a new node, searching for a node, counting nodes, and deleting nodes. For each of these operations, you'll learn to assess the time complexity of the code that you’ve written.

Target Audience:

Duration: 01:37

Description:

Refine your programming skills by exploring the most commonly-used data structures and algorithms in Java. In this course, you'll learn about the importance of data structures and algorithms in writing efficient and correct code. You'll explore the differences between abstract data types and data structures. You'll then learn how you can use complexity to measure the performance of your code based on running time, space, network usage, and other resources. Next, you'll examine the big-O notation to measure complexity. Finally, you'll learn how to analyze different methods to determine their running time, expressed using the big-O notation.

Target Audience:

Duration: 01:54