Book Description
Gain a deep understanding of the complexity of data structures and algorithms and discover the right way to write more efficient code
About This Book
 This book provides complete coverage of reactive and functional data structures
 Based on the latest version of Java 9, this book illustrates the impact of new features on data structures
 Gain exposure to important concepts such as BigO Notation and Dynamic Programming
Who This Book Is For
This book is for Java developers who want to learn about data structures and algorithms. Basic knowledge of Java is assumed.
What You Will Learn
 Understand the fundamentals of algorithms, data structures, and measurement of complexity
 Find out what general purpose data structures are, including arrays, linked lists, double ended linked lists, and circular lists
 Get a grasp on the basics of abstract data types  stack, queue, and double ended queue
 See how to use recursive functions and immutability while understanding and in terms of recursion
 Handle reactive programming and its related data structures
 Use binary search, sorting, and efficient sorting  quicksort and merge sort
 Work with the important concept of trees and list all nodes of the tree, traversal of tree, search trees, and balanced search trees
 Apply advanced general purpose data structures, priority queuebased sorting, and random access immutable linked lists
 Gain a better understanding of the concept of graphs, directed and undirected graphs, undirected trees, and much more
In Detail
Java 9 Data Structures and Algorithms covers classical, functional, and reactive data structures, giving you the ability to understand computational complexity, solve problems, and write efficient code. This book is based on the Zero Bug Bounce milestone of Java 9.
We start off with the basics of algorithms and data structures, helping you understand the fundamentals and measure complexity. From here, we introduce you to concepts such as arrays, linked lists, as well as abstract data types such as stacks and queues. Next, we'll take you through the basics of functional programming while making sure you get used to thinking recursively.
We provide plenty of examples along the way to help you understand each concept. You will get the also get a clear picture of reactive programming, binary searches, sorting, search trees, undirected graphs, and a whole lot more!
Style and approach
This book will teach you about all the major algorithms in a stepbystep manner. Special notes on the BigO Notation and its impact on algorithms will give you fresh insights.
Publisher Resources
Table of Contents

Java 9 Data Structures and Algorithms
 Table of Contents
 Java 9 Data Structures and Algorithms
 Credits
 About the Author
 About the Reviewer
 www.PacktPub.com
 Customer Feedback
 Preface
 1. Why Bother? – Basic
 2. Cogs and Pulleys – Building Blocks
 3. Protocols – Abstract Data Types
 4. Detour – Functional Programming
 5. Efficient Searching – Binary Search and Sorting
 6. Efficient Sorting – quicksort and mergesort
 7. Concepts of Tree
 8. More About Search – Search Trees and Hash Tables
 9. Advanced General Purpose Data Structures

10. Concepts of Graph
 What is a graph?
 The graph ADT
 Representation of a graph in memory
 Traversal of a graph
 Cycle detection

Spanning tree and minimum spanning tree
 For any tree with vertices V and edges E, V = E + 1
 Any connected undirected graph has a spanning tree
 Any undirected connected graph with the property V = E + 1 is a tree
 Cut property
 Minimum spanning tree is unique for a graph that has all the edges whose costs are different from one another
 Finding the minimum spanning tree
 Summary
 11. Reactive Programming
 Index
Product Information
 Title: Java 9 Data Structures and Algorithms
 Author(s):
 Release date: April 2017
 Publisher(s): Packt Publishing
 ISBN: 9781785889349